summaryrefslogtreecommitdiff
path: root/Source/WebKit
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit')
-rw-r--r--Source/WebKit/blackberry/Api/InRegionScroller.cpp14
-rw-r--r--Source/WebKit/blackberry/Api/InRegionScroller_p.h3
-rw-r--r--Source/WebKit/blackberry/Api/WebPage.cpp133
-rw-r--r--Source/WebKit/blackberry/Api/WebPage.h2
-rw-r--r--Source/WebKit/blackberry/Api/WebPage_p.h11
-rw-r--r--Source/WebKit/blackberry/ChangeLog239
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/AboutDataEnableFeatures.in9
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp18
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp2
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp10
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h2
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h2
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp4
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp9
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp3
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp3
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/InspectorOverlayBlackBerry.cpp (renamed from Source/WebKit/blackberry/WebKitSupport/InspectorOverlay.cpp)2
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/InspectorOverlayBlackBerry.h (renamed from Source/WebKit/blackberry/WebKitSupport/InspectorOverlay.h)6
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp2
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp9
-rw-r--r--Source/WebKit/chromium/ChangeLog618
-rw-r--r--Source/WebKit/chromium/DEPS2
-rw-r--r--Source/WebKit/chromium/WebKitUnitTests.gyp8
-rw-r--r--Source/WebKit/chromium/features.gypi4
-rw-r--r--Source/WebKit/chromium/public/WebIDBDatabase.h1
-rw-r--r--Source/WebKit/chromium/public/WebIDBFactory.h2
-rw-r--r--Source/WebKit/chromium/public/WebInputEvent.h18
-rw-r--r--Source/WebKit/chromium/public/WebSettings.h1
-rw-r--r--Source/WebKit/chromium/public/android/WebInputEventFactory.h5
-rw-r--r--Source/WebKit/chromium/src/ContextMenuClientImpl.cpp4
-rw-r--r--Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp3
-rw-r--r--Source/WebKit/chromium/src/IDBCallbacksProxy.cpp17
-rw-r--r--Source/WebKit/chromium/src/IDBCallbacksProxy.h4
-rw-r--r--Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp5
-rw-r--r--Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h2
-rwxr-xr-xSource/WebKit/chromium/src/IDBFactoryBackendProxy.cpp7
-rw-r--r--Source/WebKit/chromium/src/IDBFactoryBackendProxy.h2
-rw-r--r--Source/WebKit/chromium/src/WebFrameImpl.cpp14
-rw-r--r--Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp14
-rw-r--r--Source/WebKit/chromium/src/WebIDBDatabaseImpl.h5
-rwxr-xr-xSource/WebKit/chromium/src/WebIDBFactoryImpl.cpp9
-rw-r--r--Source/WebKit/chromium/src/WebIDBFactoryImpl.h2
-rw-r--r--Source/WebKit/chromium/src/WebInputEvent.cpp2
-rw-r--r--Source/WebKit/chromium/src/WebPluginContainerImpl.cpp2
-rw-r--r--Source/WebKit/chromium/src/WebSettingsImpl.cpp6
-rw-r--r--Source/WebKit/chromium/src/WebSettingsImpl.h1
-rw-r--r--Source/WebKit/chromium/src/WebViewImpl.cpp37
-rw-r--r--Source/WebKit/chromium/src/WebWorkerClientImpl.cpp8
-rw-r--r--Source/WebKit/chromium/src/android/WebInputEventFactory.cpp15
-rw-r--r--Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp1
-rw-r--r--Source/WebKit/chromium/tests/CCPrioritizedTextureTest.cpp115
-rw-r--r--Source/WebKit/chromium/tests/IDBAbortOnCorruptTest.cpp15
-rw-r--r--Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp38
-rw-r--r--Source/WebKit/chromium/tests/IDBFakeBackingStore.h1
-rw-r--r--Source/WebKit/chromium/tests/LocaleMacTest.cpp30
-rw-r--r--Source/WebKit/chromium/tests/LocaleWinTest.cpp24
-rw-r--r--Source/WebKit/chromium/tests/LocalizedDateICUTest.cpp4
-rw-r--r--Source/WebKit/chromium/tests/LocalizedNumberICUTest.cpp14
-rw-r--r--Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp47
-rw-r--r--Source/WebKit/chromium/tests/PlatformGestureCurveTest.cpp10
-rw-r--r--Source/WebKit/efl/ChangeLog206
-rw-r--r--Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp7
-rw-r--r--Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h1
-rw-r--r--Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp5
-rw-r--r--Source/WebKit/efl/ewk/ewk_frame.cpp5
-rw-r--r--Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp741
-rw-r--r--Source/WebKit/efl/ewk/ewk_tiled_backing_store_private.h78
-rw-r--r--Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp195
-rw-r--r--Source/WebKit/efl/ewk/ewk_tiled_matrix_private.h42
-rw-r--r--Source/WebKit/efl/ewk/ewk_view.h1
-rw-r--r--Source/WebKit/efl/ewk/ewk_view_tiled.cpp7
-rw-r--r--Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp5
-rw-r--r--Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h3
-rw-r--r--Source/WebKit/gtk/ChangeLog85
-rw-r--r--Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextClutter.cpp30
-rw-r--r--Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp7
-rw-r--r--Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h1
-rw-r--r--Source/WebKit/gtk/webkit/webkitwebsettings.cpp28
-rw-r--r--Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h1
-rw-r--r--Source/WebKit/gtk/webkit/webkitwebview.cpp9
-rw-r--r--Source/WebKit/mac/ChangeLog145
-rw-r--r--Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.h1
-rw-r--r--Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.mm2
-rw-r--r--Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm2
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm2
-rw-r--r--Source/WebKit/mac/WebView/WebHTMLView.mm3
-rw-r--r--Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm4
-rw-r--r--Source/WebKit/mac/WebView/WebScriptDebugger.mm7
-rw-r--r--Source/WebKit/mac/icu/unicode/localpointer.h300
-rw-r--r--Source/WebKit/mac/icu/unicode/parseerr.h6
-rw-r--r--Source/WebKit/mac/icu/unicode/platform.h310
-rw-r--r--Source/WebKit/mac/icu/unicode/ptypes.h92
-rw-r--r--Source/WebKit/mac/icu/unicode/putil.h19
-rw-r--r--Source/WebKit/mac/icu/unicode/uchar.h742
-rw-r--r--Source/WebKit/mac/icu/unicode/uconfig.h55
-rw-r--r--Source/WebKit/mac/icu/unicode/uidna.h561
-rw-r--r--Source/WebKit/mac/icu/unicode/uiter.h10
-rw-r--r--Source/WebKit/mac/icu/unicode/umachine.h109
-rw-r--r--Source/WebKit/mac/icu/unicode/unorm.h38
-rw-r--r--Source/WebKit/mac/icu/unicode/unorm2.h391
-rw-r--r--Source/WebKit/mac/icu/unicode/urename.h3625
-rw-r--r--Source/WebKit/mac/icu/unicode/uscript.h248
-rw-r--r--Source/WebKit/mac/icu/unicode/ustring.h428
-rw-r--r--Source/WebKit/mac/icu/unicode/utf.h31
-rw-r--r--Source/WebKit/mac/icu/unicode/utf16.h33
-rw-r--r--Source/WebKit/mac/icu/unicode/utf8.h118
-rw-r--r--Source/WebKit/mac/icu/unicode/utypes.h168
-rw-r--r--Source/WebKit/mac/icu/unicode/uvernum.h138
-rw-r--r--Source/WebKit/mac/icu/unicode/uversion.h215
-rw-r--r--Source/WebKit/qt/Api/qwebframe.cpp2
-rw-r--r--Source/WebKit/qt/Api/qwebpage.cpp163
-rw-r--r--Source/WebKit/qt/ChangeLog90
-rw-r--r--Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp5
-rw-r--r--Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h1
-rw-r--r--Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp4
-rw-r--r--Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp2
-rw-r--r--Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp16
-rw-r--r--Source/WebKit/qt/WebCoreSupport/PageClientQt.h6
-rw-r--r--Source/WebKit/qt/declarative/experimental/qmldir1
-rw-r--r--Source/WebKit/qt/declarative/qmldir1
-rw-r--r--Source/WebKit/qt/docs/docs.pri7
-rw-r--r--Source/WebKit/win/ChangeLog22
-rw-r--r--Source/WebKit/win/WebActionPropertyBag.cpp2
-rw-r--r--Source/WebKit/win/WebCookieManagerCurl.cpp2
-rw-r--r--Source/WebKit/win/WebView.cpp4
-rw-r--r--Source/WebKit/wx/ChangeLog12
-rw-r--r--Source/WebKit/wx/WebFrame.cpp2
127 files changed, 7942 insertions, 3260 deletions
diff --git a/Source/WebKit/blackberry/Api/InRegionScroller.cpp b/Source/WebKit/blackberry/Api/InRegionScroller.cpp
index 1c1508f7f..24da9d678 100644
--- a/Source/WebKit/blackberry/Api/InRegionScroller.cpp
+++ b/Source/WebKit/blackberry/Api/InRegionScroller.cpp
@@ -42,7 +42,6 @@ namespace BlackBerry {
namespace WebKit {
static bool canScrollInnerFrame(Frame*);
-static bool canScrollRenderBox(RenderBox*);
static RenderLayer* parentLayer(RenderLayer*);
static bool isNonRenderViewFixedPositionedContainer(RenderLayer*);
@@ -360,25 +359,24 @@ static bool canScrollInnerFrame(Frame* frame)
// with overflow-y: hidden and overflow-x: auto set.
// The version below fixes it.
// FIXME: Fix RenderBox::canBeScrolledAndHasScrollableArea method instead.
-static bool canScrollRenderBox(RenderBox* box)
+bool InRegionScrollerPrivate::canScrollRenderBox(RenderBox* box)
{
if (!box)
return false;
// We use this to make non-overflown contents layers to actually
// be overscrollable.
- if (box->layer() && box->layer()->usesCompositedScrolling()
- && box->layer()->enclosingElement() && box->layer()->enclosingElement()->isElementNode()) {
- DEFINE_STATIC_LOCAL(QualifiedName, forceOverscrollAttr, (nullAtom, "data-blackberry-force-overscroll", nullAtom));
-
- Element* element = static_cast<Element*>(box->layer()->enclosingElement());
- if (element->fastHasAttribute(forceOverscrollAttr))
+ if (box->layer() && box->layer()->usesCompositedScrolling()) {
+ if (box->style()->overflowScrolling() == OSBlackberryTouch)
return true;
}
if (!box->hasOverflowClip())
return false;
+ if (box->scrollHeight() == box->clientHeight() && box->scrollWidth() == box->clientWidth())
+ return false;
+
if (box->scrollsOverflowX() && (box->scrollWidth() != box->clientWidth())
|| box->scrollsOverflowY() && (box->scrollHeight() != box->clientHeight()))
return true;
diff --git a/Source/WebKit/blackberry/Api/InRegionScroller_p.h b/Source/WebKit/blackberry/Api/InRegionScroller_p.h
index 03140c7bf..9988b8336 100644
--- a/Source/WebKit/blackberry/Api/InRegionScroller_p.h
+++ b/Source/WebKit/blackberry/Api/InRegionScroller_p.h
@@ -28,6 +28,7 @@
namespace WebCore {
class Frame;
class Node;
+class RenderBox;
class RenderObject;
class RenderLayer;
}
@@ -53,6 +54,8 @@ public:
void clearDocumentData(const WebCore::Document*);
+ static bool canScrollRenderBox(WebCore::RenderBox*);
+
WebPagePrivate* m_webPage;
bool m_needsActiveScrollableAreaCalculation;
diff --git a/Source/WebKit/blackberry/Api/WebPage.cpp b/Source/WebKit/blackberry/Api/WebPage.cpp
index 8ec9dd7f5..e4425607f 100644
--- a/Source/WebKit/blackberry/Api/WebPage.cpp
+++ b/Source/WebKit/blackberry/Api/WebPage.cpp
@@ -208,8 +208,6 @@ static double maximumBlockZoomScale = 3; // This scale can be clamped by the max
const double manualScrollInterval = 0.1; // The time interval during which we associate user action with scrolling.
-const double delayedZoomInterval = 0;
-
const IntSize minimumLayoutSize(10, 10); // Needs to be a small size, greater than 0, that we can grow the layout from.
const double minimumExpandingRatio = 0.15;
@@ -338,6 +336,12 @@ void WebPage::enableQnxJavaScriptObject(bool enabled)
d->m_enableQnxJavaScriptObject = enabled;
}
+WebString WebPage::renderTreeAsText()
+{
+ String result = externalRepresentation(d->m_mainFrame);
+ return WebString(result.impl());
+}
+
WebPagePrivate::WebPagePrivate(WebPage* webPage, WebPageClient* client, const IntRect& rect)
: m_webPage(webPage)
, m_client(client)
@@ -396,7 +400,6 @@ WebPagePrivate::WebPagePrivate(WebPage* webPage, WebPageClient* client, const In
, m_currentBlockZoomNode(0)
, m_currentBlockZoomAdjustedNode(0)
, m_shouldReflowBlock(false)
- , m_delayedZoomTimer(adoptPtr(new Timer<WebPagePrivate>(this, &WebPagePrivate::zoomAboutPointTimerFired)))
, m_lastUserEventTimestamp(0.0)
, m_pluginMouseButtonPressed(false)
, m_pluginMayOpenNewTab(false)
@@ -1036,8 +1039,6 @@ void WebPagePrivate::setLoadState(LoadState state)
break;
case Committed:
{
- unscheduleZoomAboutPoint();
-
#if ENABLE(ACCELERATED_2D_CANVAS)
if (m_page->settings()->canvasUsesAcceleratedDrawing()) {
// Free GPU resources as we're on a new page.
@@ -1293,71 +1294,6 @@ IntPoint WebPagePrivate::calculateReflowedScrollPosition(const FloatPoint& ancho
max(0, static_cast<int>(roundf(reflowedRect.y() + offsetY - anchorOffset.y() / inverseScale))));
}
-bool WebPagePrivate::scheduleZoomAboutPoint(double unclampedScale, const FloatPoint& anchor, bool enforceScaleClamping, bool forceRendering)
-{
- double scale;
- if (!shouldZoomAboutPoint(unclampedScale, anchor, enforceScaleClamping, &scale)) {
- // We could be back to the right zoom level before the timer has
- // timed out, because of wiggling back and forth. Stop the timer.
- unscheduleZoomAboutPoint();
- return false;
- }
-
- // For some reason, the bitmap zoom wants an anchor in backingstore coordinates!
- // this is different from zoomAboutPoint, which wants content coordinates.
- // See RIM Bug #641.
-
- FloatPoint transformedAnchor = mapToTransformedFloatPoint(anchor);
- FloatPoint transformedScrollPosition = mapToTransformedFloatPoint(scrollPosition());
-
- // Prohibit backingstore from updating the window overtop of the bitmap.
- m_backingStore->d->suspendScreenAndBackingStoreUpdates();
-
- // Need to invert the previous transform to anchor the viewport.
- double zoomFraction = scale / transformationMatrix()->m11();
-
- // Anchor offset from scroll position in float.
- FloatPoint anchorOffset(transformedAnchor.x() - transformedScrollPosition.x(),
- transformedAnchor.y() - transformedScrollPosition.y());
-
- IntPoint srcPoint(
- static_cast<int>(roundf(transformedAnchor.x() - anchorOffset.x() / zoomFraction)),
- static_cast<int>(roundf(transformedAnchor.y() - anchorOffset.y() / zoomFraction)));
-
- const IntRect viewportRect = IntRect(IntPoint::zero(), transformedViewportSize());
- const IntRect dstRect = viewportRect;
-
- // This is the rect to pass as the actual source rect in the backingstore
- // for the transform given by zoom.
- IntRect srcRect(srcPoint.x(),
- srcPoint.y(),
- viewportRect.width() / zoomFraction,
- viewportRect.height() / zoomFraction);
- m_backingStore->d->blitContents(dstRect, srcRect);
-
- m_delayedZoomArguments.scale = scale;
- m_delayedZoomArguments.anchor = anchor;
- m_delayedZoomArguments.enforceScaleClamping = enforceScaleClamping;
- m_delayedZoomArguments.forceRendering = forceRendering;
- m_delayedZoomTimer->startOneShot(delayedZoomInterval);
-
- return true;
-}
-
-void WebPagePrivate::unscheduleZoomAboutPoint()
-{
- if (m_delayedZoomTimer->isActive())
- m_backingStore->d->resumeScreenAndBackingStoreUpdates(BackingStore::None);
-
- m_delayedZoomTimer->stop();
-}
-
-void WebPagePrivate::zoomAboutPointTimerFired(Timer<WebPagePrivate>*)
-{
- zoomAboutPoint(m_delayedZoomArguments.scale, m_delayedZoomArguments.anchor, m_delayedZoomArguments.enforceScaleClamping, m_delayedZoomArguments.forceRendering);
- m_backingStore->d->resumeScreenAndBackingStoreUpdates(m_delayedZoomArguments.forceRendering ? BackingStore::RenderAndBlit : BackingStore::None);
-}
-
void WebPagePrivate::setNeedsLayout()
{
FrameView* view = m_mainFrame->view();
@@ -2766,7 +2702,7 @@ PassRefPtr<Node> WebPagePrivate::contextNode(TargetDetectionStrategy strategy)
return result.node(FatFingersResult::ShadowContentNotAllowed);
}
- HitTestResult result = eventHandler->hitTestResultAtPoint(contentPos);
+ HitTestResult result = eventHandler->hitTestResultAtPoint(contentPos, false /*allowShadowContent*/);
return result.innerNode();
}
@@ -2838,7 +2774,7 @@ Node* WebPagePrivate::nodeForZoomUnderPoint(const IntPoint& point)
if (!m_mainFrame)
return 0;
- HitTestResult result = m_mainFrame->eventHandler()->hitTestResultAtPoint(mapFromTransformed(point));
+ HitTestResult result = m_mainFrame->eventHandler()->hitTestResultAtPoint(mapFromTransformed(point), false);
Node* node = result.innerNonSharedNode();
@@ -3875,12 +3811,56 @@ void WebPagePrivate::setViewportSize(const IntSize& transformedActualVisibleSize
if (atLeft)
anchor.setX(0);
+ double clampedScale;
+
// Try and zoom here with clamping on.
if (m_backingStore->d->shouldDirectRenderingToWindow()) {
bool success = zoomAboutPoint(scale, anchor, false /* enforceScaleClamping */, true /* forceRendering */);
if (!success && ensureFocusElementVisible)
ensureContentVisible(!newVisibleRectContainsOldVisibleRect);
- } else if (!scheduleZoomAboutPoint(scale, anchor, false /* enforceScaleClamping */, true /* forceRendering */)) {
+
+ } else if (shouldZoomAboutPoint(scale, anchor, false /* enforceScaleClamping */, &clampedScale)) {
+
+ // For some reason, the bitmap zoom wants an anchor in backingstore coordinates!
+ // this is different from zoomAboutPoint, which wants content coordinates.
+ // See RIM Bug #641.
+
+ FloatPoint transformedAnchor = mapToTransformedFloatPoint(anchor);
+ FloatPoint transformedScrollPosition = mapToTransformedFloatPoint(scrollPosition());
+
+ // Prohibit backingstore from updating the window overtop of the bitmap.
+ m_backingStore->d->suspendScreenAndBackingStoreUpdates();
+
+ // Need to invert the previous transform to anchor the viewport.
+ double zoomFraction = clampedScale / transformationMatrix()->m11();
+
+ // Anchor offset from scroll position in float.
+ FloatPoint anchorOffset(transformedAnchor.x() - transformedScrollPosition.x(),
+ transformedAnchor.y() - transformedScrollPosition.y());
+
+ IntPoint srcPoint(
+ static_cast<int>(roundf(transformedAnchor.x() - anchorOffset.x() / zoomFraction)),
+ static_cast<int>(roundf(transformedAnchor.y() - anchorOffset.y() / zoomFraction)));
+
+ const IntRect viewportRect = IntRect(IntPoint::zero(), transformedViewportSize());
+ const IntRect dstRect = viewportRect;
+
+ // This is the rect to pass as the actual source rect in the backingstore
+ // for the transform given by zoom.
+ IntRect srcRect(srcPoint.x(),
+ srcPoint.y(),
+ viewportRect.width() / zoomFraction,
+ viewportRect.height() / zoomFraction);
+ m_backingStore->d->blitContents(dstRect, srcRect);
+
+ zoomAboutPoint(clampedScale, anchor, false /*enforceScaleClamping*/, true /*forceRendering*/);
+
+ m_backingStore->d->resumeScreenAndBackingStoreUpdates(BackingStore::RenderAndBlit);
+
+ if (ensureFocusElementVisible)
+ ensureContentVisible(!newVisibleRectContainsOldVisibleRect);
+ } else {
+
// Suspend all screen updates to the backingstore.
m_backingStore->d->suspendScreenAndBackingStoreUpdates();
@@ -3911,8 +3891,7 @@ void WebPagePrivate::setViewportSize(const IntSize& transformedActualVisibleSize
// If we need layout then render and blit, otherwise just blit as our viewport has changed.
m_backingStore->d->resumeScreenAndBackingStoreUpdates(needsLayout ? BackingStore::RenderAndBlit : BackingStore::Blit);
- } else if (ensureFocusElementVisible)
- ensureContentVisible(!newVisibleRectContainsOldVisibleRect);
+ }
}
void WebPage::setViewportSize(const Platform::IntSize& viewportSize, bool ensureFocusElementVisible)
@@ -4048,7 +4027,7 @@ bool WebPagePrivate::handleMouseEvent(PlatformMouseEvent& mouseEvent)
}
if (!node) {
- HitTestResult result = eventHandler->hitTestResultAtPoint(mapFromViewportToContents(mouseEvent.position()));
+ HitTestResult result = eventHandler->hitTestResultAtPoint(mapFromViewportToContents(mouseEvent.position()), false /*allowShadowContent*/);
node = result.innerNode();
}
@@ -5211,7 +5190,7 @@ WebDOMDocument WebPage::document() const
WebDOMNode WebPage::nodeAtPoint(int x, int y)
{
- HitTestResult result = d->m_mainFrame->eventHandler()->hitTestResultAtPoint(d->mapFromTransformed(IntPoint(x, y)));
+ HitTestResult result = d->m_mainFrame->eventHandler()->hitTestResultAtPoint(d->mapFromTransformed(IntPoint(x, y)), false);
Node* node = result.innerNonSharedNode();
return WebDOMNode(node);
}
diff --git a/Source/WebKit/blackberry/Api/WebPage.h b/Source/WebKit/blackberry/Api/WebPage.h
index f3a5760fa..20c48f00e 100644
--- a/Source/WebKit/blackberry/Api/WebPage.h
+++ b/Source/WebKit/blackberry/Api/WebPage.h
@@ -381,6 +381,8 @@ public:
void enableQnxJavaScriptObject(bool);
+ WebString renderTreeAsText();
+
private:
virtual ~WebPage();
diff --git a/Source/WebKit/blackberry/Api/WebPage_p.h b/Source/WebKit/blackberry/Api/WebPage_p.h
index 6308971c5..7e427648a 100644
--- a/Source/WebKit/blackberry/Api/WebPage_p.h
+++ b/Source/WebKit/blackberry/Api/WebPage_p.h
@@ -134,8 +134,6 @@ public:
// Scale the page to the given scale and anchor about the point which is specified in untransformed content coordinates.
bool zoomAboutPoint(double scale, const WebCore::FloatPoint& anchor, bool enforceScaleClamping = true, bool forceRendering = false, bool isRestoringZoomLevel = false);
- bool scheduleZoomAboutPoint(double scale, const WebCore::FloatPoint& anchor, bool enforceScaleClamping = true, bool forceRendering = false);
- void unscheduleZoomAboutPoint();
WebCore::IntPoint calculateReflowedScrollPosition(const WebCore::FloatPoint& anchorOffset, double inverseScale);
void setTextReflowAnchorPoint(const Platform::IntPoint& focalPoint);
@@ -547,15 +545,6 @@ public:
RefPtr<WebCore::Node> m_currentBlockZoomAdjustedNode;
bool m_shouldReflowBlock;
- // Delayed zoomAboutPoint.
- OwnPtr<WebCore::Timer<WebPagePrivate> > m_delayedZoomTimer;
- struct {
- double scale;
- WebCore::FloatPoint anchor;
- bool enforceScaleClamping;
- bool forceRendering;
- } m_delayedZoomArguments;
-
double m_lastUserEventTimestamp; // Used to detect user scrolling.
WebCore::PlatformMouseEvent m_lastMouseEvent;
diff --git a/Source/WebKit/blackberry/ChangeLog b/Source/WebKit/blackberry/ChangeLog
index f7418cb77..aec03ffab 100644
--- a/Source/WebKit/blackberry/ChangeLog
+++ b/Source/WebKit/blackberry/ChangeLog
@@ -1,3 +1,242 @@
+2012-09-13 Antonio Gomes <agomes@rim.com>
+
+ [BlackBerry] Remove the ability to schedule a zoom about point call.
+ https://bugs.webkit.org/show_bug.cgi?id=96696
+
+ [FullScreen] entering/leaving fullscreen results in temporary glitches on the screen (Part I)
+ PR #180866
+
+ Reviewed by Rob Buis.
+
+ Internally reviewed by Jacky Jiang and Arvid Nilsson.
+
+ Patch replaces the async call to zoomAboutPoint (via scheduling it with a one-shot-0-timer).
+ Instead, at its single call site, we inline most of the previous scheduleZoomAboutPoint code,
+ and in the end call zoomAboutPoint directly.
+
+ Change was estimulated by Arvid's comment on PRzilla: "There is no longer any reason to have
+ zoom about point be async.. That was a hack I did for BB6, back when we were doing everything on the WK
+ thread and needed manual time slicing betwren rendering and user interaction."
+
+ The bigger goal though is to be able to remove screen glitches while entering/leaving
+ fullscreen mode: since we could accurately use the count-based suspend/resume backing
+ store mechanism to prevent it.
+
+ * Api/WebPage.cpp:
+ (WebKit):
+ (BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
+ (BlackBerry::WebKit::WebPagePrivate::setLoadState):
+ (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
+ * Api/WebPage_p.h:
+ (WebPagePrivate):
+
+2012-09-14 Arvid Nilsson <anilsson@rim.com>
+
+ [BlackBerry] Add renderTreeAsText API to WebPage
+ https://bugs.webkit.org/show_bug.cgi?id=96629
+
+ Reviewed by Antonio Gomes.
+
+ This will be used for automated testing.
+
+ PR #198595
+
+ * Api/WebPage.cpp:
+ (BlackBerry::WebKit::WebPage::renderTreeAsText):
+ (WebKit):
+ * Api/WebPage.h:
+
+2012-09-13 Rob Buis <rbuis@rim.com>
+
+ [BlackBerry] Cleanup AboutDataEnableFeatures.in
+ https://bugs.webkit.org/show_bug.cgi?id=96695
+
+ Reviewed by Antonio Gomes.
+
+ Remove unused features.
+
+ * WebCoreSupport/AboutDataEnableFeatures.in:
+
+2012-09-13 Rob Buis <rbuis@rim.com>
+
+ [BlackBerry] Rename InspectorOverlay in blackberry/WebKitSupport
+ https://bugs.webkit.org/show_bug.cgi?id=96689
+
+ Reviewed by Antonio Gomes.
+
+ Rename to InspectorClientBlackBerry to avoid include problems.
+
+ * WebCoreSupport/InspectorClientBlackBerry.h:
+ * WebKitSupport/InspectorOverlayBlackBerry.cpp: Renamed from Source/WebKit/blackberry/WebKitSupport/InspectorOverlay.cpp.
+ (WebKit):
+ (BlackBerry::WebKit::InspectorOverlay::create):
+ (BlackBerry::WebKit::InspectorOverlay::InspectorOverlay):
+ (BlackBerry::WebKit::InspectorOverlay::notifySyncRequired):
+ (BlackBerry::WebKit::InspectorOverlay::paintContents):
+ (BlackBerry::WebKit::InspectorOverlay::showDebugBorders):
+ (BlackBerry::WebKit::InspectorOverlay::showRepaintCounter):
+ (BlackBerry::WebKit::InspectorOverlay::~InspectorOverlay):
+ (BlackBerry::WebKit::InspectorOverlay::clear):
+ (BlackBerry::WebKit::InspectorOverlay::update):
+ * WebKitSupport/InspectorOverlayBlackBerry.h: Renamed from Source/WebKit/blackberry/WebKitSupport/InspectorOverlay.h.
+ (WebCore):
+ (WebKit):
+ (InspectorOverlay):
+ (InspectorOverlayClient):
+ (BlackBerry::WebKit::InspectorOverlay::setClient):
+ (BlackBerry::WebKit::InspectorOverlay::notifyAnimationStarted):
+
+2012-09-13 Antonio Gomes <agomes@rim.com>
+
+ Unreviewed, warning fix left over from r128456 (bug 96645)
+
+ * Api/InRegionScroller.cpp:
+ (WebKit):
+
+2012-09-13 Genevieve Mak <gmak@rim.com>
+
+ Continue to send mouse move events to a non-scrollable page
+ even if they are not consumed.
+ PR #207024
+ https://bugs.webkit.org/show_bug.cgi?id=96655
+
+ Reviewed by Antonio Gomes.
+
+ * WebKitSupport/TouchEventHandler.cpp:
+ (BlackBerry::WebKit::isMainFrameScrollable):
+ (WebKit):
+ (BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
+
+2012-09-13 Jacky Jiang <zhajiang@rim.com>
+
+ [BlackBerry] Missing conditions in InRegionScrollerPrivate::canScrollRenderBox
+ https://bugs.webkit.org/show_bug.cgi?id=96660
+
+ Reviewed by Antonio Gomes.
+
+ PR: 207884
+ According to RenderBox::canBeScrolledAndHasScrollableArea(), we should
+ bail out early in InRegionScrollerPrivate::canScrollRenderBox() if the
+ RenderBox's scroll height equals the client height and the scroll width
+ equals the client width. Otherwise, we will miss the conditions.
+
+ * Api/InRegionScroller.cpp:
+ (BlackBerry::WebKit::InRegionScrollerPrivate::canScrollRenderBox):
+
+2012-09-13 Jessica Cao <jecao@rim.com>
+
+ [BlackBerry] Page Popup for Month is non-functional.
+ https://bugs.webkit.org/show_bug.cgi?id=96651
+
+ Reviewed by Rob Buis.
+
+ Hook up support for Month popup.
+
+ * WebCoreSupport/DatePickerClient.cpp:
+ (WebCore::DatePickerClient::generateHTML):
+ * WebKitSupport/InputHandler.cpp:
+ (BlackBerry::WebKit::InputHandler::openDatePopup):
+
+2012-09-13 Antonio Gomes <agomes@rim.com>
+
+ [BlackBerry] ASSERT failure in InRegionScrollableArea::InRegionScrollableArea
+ https://bugs.webkit.org/show_bug.cgi?id=96645
+ PR #207307
+
+ Reviewed by George Staikos.
+
+ We use canScrollRenderBox to promote the layer as scrollable instead
+ of RenderBox::canScrollAndHasScrollableArea (see comment above the former).
+ We should assert against the former as well.
+
+ * Api/InRegionScroller.cpp:
+ (BlackBerry::WebKit::InRegionScrollerPrivate::canScrollRenderBox):
+ * Api/InRegionScroller_p.h:
+ (WebCore):
+ (InRegionScrollerPrivate):
+ * WebKitSupport/InRegionScrollableArea.cpp:
+ (BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea):
+
+2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r127876.
+ http://trac.webkit.org/changeset/127876
+ https://bugs.webkit.org/show_bug.cgi?id=96600
+
+ mouse click doesn't work for spin button if spin button in
+ iframe (Requested by yosin on #webkit).
+
+ * Api/WebPage.cpp:
+ (BlackBerry::WebKit::WebPagePrivate::contextNode):
+ (BlackBerry::WebKit::WebPagePrivate::nodeForZoomUnderPoint):
+ (BlackBerry::WebKit::WebPagePrivate::handleMouseEvent):
+ (BlackBerry::WebKit::WebPage::nodeAtPoint):
+ * WebKitSupport/FatFingers.cpp:
+ (BlackBerry::WebKit::FatFingers::getNodesFromRect):
+ (BlackBerry::WebKit::FatFingers::getRelevantInfoFromPoint):
+ * WebKitSupport/SelectionHandler.cpp:
+ (BlackBerry::WebKit::visiblePositionForPointIgnoringClipping):
+
+2012-09-12 Sami Kyostila <skyostil@google.com>
+
+ Rename OVERFLOW_SCROLLING as ACCELERATED_OVERFLOW_SCROLLING
+ https://bugs.webkit.org/show_bug.cgi?id=96251
+
+ Reviewed by Simon Fraser.
+
+ Rename OVERFLOW_SCROLLING as ACCELERATED_OVERFLOW_SCROLLING to better describe
+ the feature it controls.
+
+ * WebCoreSupport/AboutDataEnableFeatures.in:
+
+2012-09-11 Antonio Gomes <agomes@rim.com>
+
+ [BlackBerry] add a way to overscroll non-overflown content
+ https://bugs.webkit.org/show_bug.cgi?id=96331
+ PR #195305
+
+ Reviewed by Yong Li.
+
+ Check -webkit-overflow-scrolling value for '-blackberry-touch' instead
+ of checking a custom HTML5 attribute.
+
+ No behavioural change. Mostly a rework of r128142.
+
+ * Api/InRegionScroller.cpp:
+ (BlackBerry::WebKit::canScrollRenderBox):
+
+2012-09-11 Rob Buis <rbuis@rim.com>
+
+ [BlackBerry] make pickers/dialogs use appendLiteral
+ https://bugs.webkit.org/show_bug.cgi?id=96424
+
+ Reviewed by Antonio Gomes.
+
+ PR 204032
+
+ Other pickers were updated in r128204.
+
+ * WebCoreSupport/ColorPickerClient.cpp:
+ (WebCore::ColorPickerClient::generateHTML):
+ * WebCoreSupport/PagePopupBlackBerry.cpp:
+ (WebCore::PagePopupBlackBerry::generateHTML):
+
+2012-09-11 Konrad Piascik <kpiascik@rim.com>
+
+ [BlackBerry] Fix history navigation for error pages.
+ https://bugs.webkit.org/show_bug.cgi?id=96410
+
+ Reviewed by Rob Buis.
+
+ Fix how history navigation handles restoring view state when navigating between error pages.
+
+ * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
+ (WebCore::FrameLoaderClientBlackBerry::FrameLoaderClientBlackBerry):
+ (WebCore::FrameLoaderClientBlackBerry::saveViewStateToItem):
+ (WebCore::FrameLoaderClientBlackBerry::restoreViewState):
+ * WebCoreSupport/FrameLoaderClientBlackBerry.h:
+ (FrameLoaderClientBlackBerry):
+
2012-09-11 Jinwoo Song <jinwoo7.song@samsung.com>
Deploy StringBuilder::appendNumber() and StringBuilder::appendLiteral() in more places
diff --git a/Source/WebKit/blackberry/WebCoreSupport/AboutDataEnableFeatures.in b/Source/WebKit/blackberry/WebCoreSupport/AboutDataEnableFeatures.in
index 42fc389f8..45986026b 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/AboutDataEnableFeatures.in
+++ b/Source/WebKit/blackberry/WebCoreSupport/AboutDataEnableFeatures.in
@@ -1,6 +1,7 @@
3D_CANVAS
3D_RENDERING
ACCELERATED_2D_CANVAS
+ACCELERATED_OVERFLOW_SCROLLING
ALL_VARIABLES_CAPTURED
ASSEMBLER
ASSEMBLER_WX_EXCLUSIVE
@@ -12,7 +13,6 @@ BRANCH_COMPACTION
CALENDAR_PICKER
CHANNEL_MESSAGING
CLASSIC_INTERPRETER
-CLIENT_BASED_GEOLOCATION
CODEBLOCK_SAMPLING
COMPARE_AND_SWAP
COMPUTED_GOTO
@@ -29,7 +29,6 @@ CSS_SHADERS
CTI
CUSTOM_SCHEME_HANDLER
DASHBOARD_SUPPORT
-DATABASE
DATAGRID
DATALIST
DATA_TRANSFER_ITEMS
@@ -60,7 +59,6 @@ FILE_SYSTEM
FILTERS
FIXED_REPORTED_SIZE
FLEXBOX
-FOO
FTPDIR
FULLSCREEN_API
GAMEPAD
@@ -134,7 +132,6 @@ OPCODE_SAMPLING
OPCODE_STATS
ORIENTATION_EVENTS
OSR_ENTRY
-OVERFLOW_SCROLLING
PAGE_POPUP
PAGE_VISIBILITY_API
PAN_SCROLLING
@@ -175,12 +172,8 @@ STYLE_SCOPED
SUBPIXEL_LAYOUT
SUCCESS_STATS
SVG
-SVG_ANIMATION
-SVG_AS_IMAGE
SVG_DOM_OBJC_BINDINGS
-SVG_EXPERIMENTAL_FEATURES
SVG_FONTS
-SVG_FOREIGN_OBJECT
TEXT_CARET
TEXT_NOTIFICATIONS_ONLY
THREADED_SCROLLING
diff --git a/Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp b/Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp
index 7ffc8fef6..7e573434b 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp
+++ b/Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp
@@ -45,24 +45,24 @@ ColorPickerClient::ColorPickerClient(const BlackBerry::WebKit::WebString& value,
void ColorPickerClient::generateHTML(const BlackBerry::WebKit::WebString& value)
{
StringBuilder source;
- source.append("<style>\n");
+ source.appendLiteral("<style>\n");
// Include CSS file.
source.append(popupControlBlackBerryCss,
sizeof(popupControlBlackBerryCss));
- source.append("</style>\n<style>");
+ source.appendLiteral("</style>\n<style>");
source.append(colorControlBlackBerryCss,
sizeof(colorControlBlackBerryCss));
- source.append("</style></head><body>\n");
- source.append("<script>\n");
- source.append("window.addEventListener('load', function () {");
- source.append("window.popupcontrol.show(");
+ source.appendLiteral("</style></head><body>\n");
+ source.appendLiteral("<script>\n");
+ source.appendLiteral("window.addEventListener('load', function () {");
+ source.appendLiteral("window.popupcontrol.show(");
if (!value.isEmpty())
source.append("\"" + String(value.impl()) + "\"); \n }); \n");
else
- source.append("); \n }); \n");
+ source.appendLiteral("); \n }); \n");
source.append(colorControlBlackBerryJs, sizeof(colorControlBlackBerryJs));
- source.append("</script>\n");
- source.append("</body> </html>\n");
+ source.appendLiteral("</script>\n");
+ source.appendLiteral("</body> </html>\n");
m_source = source.toString();
}
diff --git a/Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp b/Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp
index b652bdf89..50942ca73 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp
+++ b/Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp
@@ -74,6 +74,8 @@ void DatePickerClient::generateHTML(BlackBerry::Platform::BlackBerryInputType ty
source.appendLiteral("window.popupcontrol.show(\"DateTimeLocal\", ");
break;
case BlackBerry::Platform::InputTypeMonth:
+ source.appendLiteral("window.popupcontrol.show(\"Month\", ");
+ break;
case BlackBerry::Platform::InputTypeWeek:
default:
break;
diff --git a/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp
index 58cb66821..8d1f64000 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp
+++ b/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp
@@ -109,7 +109,6 @@ FrameLoaderClientBlackBerry::FrameLoaderClientBlackBerry()
, m_hasSentResponseToPlugin(false)
, m_cancelLoadOnNextData(false)
, m_wasProvisionalLoadTriggeredByUserGesture(true) // To avoid affecting the first load.
- , m_shouldRestoreViewState(true)
{
}
@@ -1027,8 +1026,7 @@ void FrameLoaderClientBlackBerry::saveViewStateToItem(HistoryItem* item)
ASSERT(item);
HistoryItemViewState& viewState = item->viewState();
- m_shouldRestoreViewState = viewState.shouldSaveViewState;
- if (m_shouldRestoreViewState) {
+ if (viewState.shouldSaveViewState) {
viewState.orientation = m_webPagePrivate->mainFrame()->orientation();
viewState.isZoomToFitScale = m_webPagePrivate->currentScale() == m_webPagePrivate->zoomToFitScale();
viewState.scale = m_webPagePrivate->currentScale();
@@ -1041,8 +1039,6 @@ void FrameLoaderClientBlackBerry::saveViewStateToItem(HistoryItem* item)
void FrameLoaderClientBlackBerry::restoreViewState()
{
- if (!m_shouldRestoreViewState)
- return;
if (!isMainFrame())
return;
@@ -1052,6 +1048,9 @@ void FrameLoaderClientBlackBerry::restoreViewState()
if (!currentItem)
return;
+ HistoryItemViewState& viewState = currentItem->viewState();
+ if (!viewState.shouldSaveViewState)
+ return;
// WebPagePrivate is messing up FrameView::wasScrolledByUser() by sending
// scroll events that look like they were user generated all the time.
//
@@ -1070,7 +1069,6 @@ void FrameLoaderClientBlackBerry::restoreViewState()
// We need to reset this variable after the view state has been restored.
m_webPagePrivate->m_didRestoreFromPageCache = false;
- HistoryItemViewState& viewState = currentItem->viewState();
// Restore the meta first.
m_webPagePrivate->m_minimumScale = viewState.minimumScale;
diff --git a/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h b/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h
index 1eefa2ab2..b96967413 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h
+++ b/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h
@@ -219,8 +219,6 @@ private:
bool m_cancelLoadOnNextData;
bool m_wasProvisionalLoadTriggeredByUserGesture;
-
- bool m_shouldRestoreViewState;
};
} // WebCore
diff --git a/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h b/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h
index 274bc8cce..34a553650 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h
+++ b/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h
@@ -22,7 +22,7 @@
#include "InspectorClient.h"
#include "InspectorFrontendChannel.h"
-#include "InspectorOverlay.h"
+#include "InspectorOverlayBlackBerry.h"
#include <wtf/HashMap.h>
#include <wtf/text/WTFString.h>
diff --git a/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp
index e2ed3490b..81c148ffd 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp
+++ b/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp
@@ -81,9 +81,9 @@ void PagePopupBlackBerry::generateHTML(WebPage* webpage)
StringBuilder source;
// FIXME: the hardcoding padding will be removed soon.
int screenWidth = webpage->d->screenSize().width() - PADDING;
- source.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n");
+ source.appendLiteral("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n");
source.append("<meta name=\"viewport\" content=\"width=" + String::number(screenWidth));
- source.append("; user-scalable=no\" />\n");
+ source.appendLiteral("; user-scalable=no\" />\n");
writer->addData(source.toString().utf8().data(), source.toString().utf8().length());
m_client->writeDocument(*writer);
diff --git a/Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp b/Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp
index f42f5edbf..c3442c827 100644
--- a/Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp
@@ -491,12 +491,11 @@ void FatFingers::getNodesFromRect(Document* document, const IntPoint& contentPos
unsigned topPadding, rightPadding, bottomPadding, leftPadding;
getPaddings(topPadding, rightPadding, bottomPadding, leftPadding);
+ HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::IgnoreClipping);
// The user functions checkForText() and findIntersectingRegions() uses the Node.wholeText() to checkFingerIntersection()
// not the text in its shadow tree.
- HitTestRequest request = HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::IgnoreClipping;
- if (m_targetType != Text)
- request |= HitTestRequest::AllowShadowContent;
- HitTestResult result(contentPos, topPadding, rightPadding, bottomPadding, leftPadding);
+ ShadowContentFilterPolicy allowShadow = m_targetType == Text ? DoNotAllowShadowContent : AllowShadowContent;
+ HitTestResult result(contentPos, topPadding, rightPadding, bottomPadding, leftPadding, allowShadow);
document->renderView()->layer()->hitTest(request, result);
intersectedNodes = result.rectBasedTestResult();
@@ -511,7 +510,7 @@ void FatFingers::getRelevantInfoFromPoint(Document* document, const IntPoint& co
if (!document || !document->renderer() || !document->frame())
return;
- HitTestResult result = document->frame()->eventHandler()->hitTestResultAtPoint(contentPos, HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::AllowShadowContent);
+ HitTestResult result = document->frame()->eventHandler()->hitTestResultAtPoint(contentPos, true /*allowShadowContent*/);
Node* node = result.innerNode();
while (node && !node->isElementNode())
node = node->parentNode();
diff --git a/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp b/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp
index f19a9712a..4b2c095ef 100644
--- a/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp
@@ -21,6 +21,7 @@
#include "Frame.h"
#include "LayerWebKitThread.h"
+#include "InRegionScroller_p.h"
#include "RenderBox.h"
#include "RenderLayer.h"
#include "RenderLayerBacking.h"
@@ -82,7 +83,7 @@ InRegionScrollableArea::InRegionScrollableArea(WebPagePrivate* webPage, RenderLa
RenderBox* box = m_layer->renderBox();
ASSERT(box);
- ASSERT(box->canBeScrolledAndHasScrollableArea());
+ ASSERT(InRegionScrollerPrivate::canScrollRenderBox(box));
ScrollableArea* scrollableArea = static_cast<ScrollableArea*>(m_layer);
m_scrollPosition = m_webPage->mapToTransformed(scrollableArea->scrollPosition());
diff --git a/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp b/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp
index 6e8715a5e..690c1bbb7 100644
--- a/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp
@@ -972,7 +972,8 @@ bool InputHandler::openDatePopup(HTMLInputElement* element, BlackBerryInputType
case BlackBerry::Platform::InputTypeDate:
case BlackBerry::Platform::InputTypeTime:
case BlackBerry::Platform::InputTypeDateTime:
- case BlackBerry::Platform::InputTypeDateTimeLocal: {
+ case BlackBerry::Platform::InputTypeDateTimeLocal:
+ case BlackBerry::Platform::InputTypeMonth: {
// Check if popup already exists, close it if does.
m_webPage->m_page->chrome()->client()->closePagePopup(0);
String value = element->value();
diff --git a/Source/WebKit/blackberry/WebKitSupport/InspectorOverlay.cpp b/Source/WebKit/blackberry/WebKitSupport/InspectorOverlayBlackBerry.cpp
index ee5d33346..9cff5b230 100644
--- a/Source/WebKit/blackberry/WebKitSupport/InspectorOverlay.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/InspectorOverlayBlackBerry.cpp
@@ -18,7 +18,7 @@
#include "config.h"
-#include "InspectorOverlay.h"
+#include "InspectorOverlayBlackBerry.h"
#include "Frame.h"
#include "FrameView.h"
diff --git a/Source/WebKit/blackberry/WebKitSupport/InspectorOverlay.h b/Source/WebKit/blackberry/WebKitSupport/InspectorOverlayBlackBerry.h
index e341f364f..de6f51ff3 100644
--- a/Source/WebKit/blackberry/WebKitSupport/InspectorOverlay.h
+++ b/Source/WebKit/blackberry/WebKitSupport/InspectorOverlayBlackBerry.h
@@ -16,8 +16,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef InspectorOverlay_h
-#define InspectorOverlay_h
+#ifndef InspectorOverlayBlackBerry_h
+#define InspectorOverlayBlackBerry_h
#include "WebOverlay.h"
#include <GraphicsLayerClient.h>
@@ -70,4 +70,4 @@ private:
} // namespace WebKit
} // namespace BlackBerry
-#endif /* InspectorOverlay_h */
+#endif /* InspectorOverlayBlackBerry_h */
diff --git a/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp b/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp
index f289cf5dc..e6c07ffac 100644
--- a/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp
@@ -160,7 +160,7 @@ static VisiblePosition visiblePositionForPointIgnoringClipping(const Frame& fram
// outside the visible rect. To work around the bug, this is a copy of
// visiblePositionAtPoint which which passes ignoreClipping=true.
// See RIM Bug #4315.
- HitTestResult result = frame.eventHandler()->hitTestResultAtPoint(framePoint, HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::AllowShadowContent | HitTestRequest::IgnoreClipping);
+ HitTestResult result = frame.eventHandler()->hitTestResultAtPoint(framePoint, true /* allowShadowContent */, true /* ignoreClipping */);
Node* node = result.innerNode();
if (!node || node->document() != frame.document())
diff --git a/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp b/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp
index 9cb28d8c5..5aa77f5be 100644
--- a/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp
@@ -177,6 +177,11 @@ void TouchEventHandler::touchHoldEvent()
m_webPage->clearFocusNode();
}
+static bool isMainFrameScrollable(const WebPagePrivate* page)
+{
+ return page->viewportSize().width() < page->contentsSize().width() || page->viewportSize().height() < page->contentsSize().height();
+}
+
bool TouchEventHandler::handleTouchPoint(Platform::TouchPoint& point, bool useFatFingers)
{
// Enable input mode on any touch event.
@@ -269,7 +274,9 @@ bool TouchEventHandler::handleTouchPoint(Platform::TouchPoint& point, bool useFa
PlatformMouseEvent mouseEvent(point.m_pos, m_lastScreenPoint, PlatformEvent::MouseMoved, 1, LeftButton, TouchScreen);
m_lastScreenPoint = point.m_screenPos;
if (!m_webPage->handleMouseEvent(mouseEvent)) {
- m_convertTouchToMouse = pureWithMouseConversion;
+ // If the page is scrollable and the first event is not handled, ignore subsequent mouse moves.
+ if (isMainFrameScrollable(m_webPage) || m_webPage->m_inRegionScroller->d->isActive() )
+ m_convertTouchToMouse = pureWithMouseConversion;
return false;
}
return true;
diff --git a/Source/WebKit/chromium/ChangeLog b/Source/WebKit/chromium/ChangeLog
index 35eb61279..df6051fb3 100644
--- a/Source/WebKit/chromium/ChangeLog
+++ b/Source/WebKit/chromium/ChangeLog
@@ -1,3 +1,621 @@
+2012-09-14 Keishi Hattori <keishi@webkit.org>
+
+ Make time input lang attribute aware for testing
+ https://bugs.webkit.org/show_bug.cgi?id=96728
+
+ Reviewed by Kent Tamura.
+
+ * tests/LocalizedDateICUTest.cpp:
+ (LocalizedDateICUTest::localizedDateFormatText):
+ (LocalizedDateICUTest::localizedShortDateFormatText):
+
+2012-09-14 Keishi Hattori <keishi@webkit.org>
+
+ Refactor time format related methods on LocaleWin/Mac/ICU so that they override Localizer methods
+ https://bugs.webkit.org/show_bug.cgi?id=96726
+
+ Reviewed by Kent Tamura.
+
+ * tests/LocaleMacTest.cpp:
+ (LocaleMacTest::timeFormat):
+ (LocaleMacTest::shortTimeFormat):
+ (TEST_F):
+ * tests/LocaleWinTest.cpp:
+ (LocaleWinTest::timeFormat):
+ (LocaleWinTest::shortTimeFormat):
+ (TEST_F):
+ * tests/LocalizedDateICUTest.cpp:
+ (LocalizedDateICUTest::localizedDateFormatText):
+ (LocalizedDateICUTest::localizedShortDateFormatText):
+
+2012-09-14 Keishi Hattori <keishi@webkit.org>
+
+ LocaleMac should fallback to defaultLanguage for an invalid locale
+ https://bugs.webkit.org/show_bug.cgi?id=96744
+
+ Reviewed by Kent Tamura.
+
+ * tests/LocaleMacTest.cpp:
+ (TEST_F):
+
+2012-09-13 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r128543.
+ http://trac.webkit.org/changeset/128543
+ https://bugs.webkit.org/show_bug.cgi?id=96722
+
+ Caused LocaleWinTest.localizedNumberRoundTrip to fail
+ (Requested by keishi on #webkit).
+
+ * tests/LocaleWinTest.cpp:
+ (testNumberIsReversible):
+ (testNumbers):
+ (TEST_F):
+
+2012-09-13 Keishi Hattori <keishi@webkit.org>
+
+ Create Localizer factory method for LocaleWin
+ https://bugs.webkit.org/show_bug.cgi?id=96667
+
+ Reviewed by Kent Tamura.
+
+ * tests/LocaleWinTest.cpp:
+ (testNumberIsReversible):
+ (testNumbers):
+
+2012-09-13 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Consolidate two-phase connection to avoid race conditions
+ https://bugs.webkit.org/show_bug.cgi?id=90411
+
+ Reviewed by Tony Chang.
+
+ API plumbing for simplified single-phase connection opening, and tests updated
+ to exercise the new APIs.
+
+ * public/WebIDBDatabase.h:
+ (WebIDBDatabase): Just a FIXME to remove the old second-phase hookup API.
+ * public/WebIDBFactory.h:
+ (WebKit):
+ (WebIDBFactory):
+ (WebKit::WebIDBFactory::open): New overload that takes db-callbacks.
+ * src/IDBCallbacksProxy.cpp: The db-callbacks plumbing is needed earlier.
+ (WebKit::IDBCallbacksProxy::onSuccess):
+ (WebKit::IDBCallbacksProxy::onUpgradeNeeded):
+ (WebKit):
+ (WebKit::IDBCallbacksProxy::setDatabaseCallbacks): Needs to hold on to
+ the db-callbacks and hook it up when the onSuccess callback comes through.
+ * src/IDBCallbacksProxy.h:
+ (WebKit):
+ (IDBCallbacksProxy):
+ * src/IDBDatabaseBackendProxy.cpp:
+ * src/IDBDatabaseBackendProxy.h:
+ (IDBDatabaseBackendProxy):
+ * src/IDBFactoryBackendProxy.cpp:
+ (WebKit::IDBFactoryBackendProxy::open):
+ * src/IDBFactoryBackendProxy.h:
+ (IDBFactoryBackendProxy):
+ * src/WebIDBDatabaseImpl.cpp:
+ (WebKit::WebIDBDatabaseImpl::WebIDBDatabaseImpl):
+ (WebKit::WebIDBDatabaseImpl::close):
+ * src/WebIDBDatabaseImpl.h:
+ (WebIDBDatabaseImpl):
+ * src/WebIDBFactoryImpl.cpp:
+ (WebKit::WebIDBFactoryImpl::open):
+ * src/WebIDBFactoryImpl.h:
+ (WebIDBFactoryImpl):
+ * tests/IDBAbortOnCorruptTest.cpp:
+ (FakeIDBDatabaseCallbacks):
+ (WebCore::FakeIDBDatabaseCallbacks::create):
+ (WebCore::FakeIDBDatabaseCallbacks::~FakeIDBDatabaseCallbacks):
+ (WebCore::FakeIDBDatabaseCallbacks::FakeIDBDatabaseCallbacks):
+ (WebCore):
+ (WebCore::TEST): Updated connection sequence.
+ * tests/IDBDatabaseBackendTest.cpp: Ditto.
+
+2012-09-13 James Robinson <jamesr@chromium.org>
+
+ PlatformGestureCurveTest compile fix pt 2
+
+ * tests/PlatformGestureCurveTest.cpp:
+
+2012-09-13 James Robinson <jamesr@chromium.org>
+
+ Fix compile warning/error on windows - literal that isn't exactly representable as a float needs "f" suffix.
+
+ * tests/PlatformGestureCurveTest.cpp:
+
+2012-09-13 Julien Chaffraix <jchaffraix@webkit.org>
+
+ [Chromium] REGRESSION(r127457): Context menu on textarea is displayed in the wrong place
+ https://bugs.webkit.org/show_bug.cgi?id=96593
+
+ Reviewed by Adam Barth.
+
+ After r127457, the HitTestResult stored in ContextMenuController is in window coordinates.
+ Trying to convert it again to window coordinates will result in adding the containing frame's
+ position twice, thus the wrong placing.
+
+ Chromium Mac wasn't impacted by the regression and I manually checked that the fix doesn't impact Mac.
+
+ Unfortunately, no test as I don't think we have a way of testing context menu position.
+
+ * src/ContextMenuClientImpl.cpp:
+ (WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):
+
+2012-09-13 Robert Kroeger <rjkroege@chromium.org>
+
+ [chromium] alter fling animation parameters.
+ https://bugs.webkit.org/show_bug.cgi?id=96666
+
+ Reviewed by Adrienne Walker.
+
+ Corrected the test to be non-fragile in the presence of altered fling
+ curve parameters.
+
+ * tests/PlatformGestureCurveTest.cpp:
+
+2012-09-13 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r128489.
+ http://trac.webkit.org/changeset/128489
+ https://bugs.webkit.org/show_bug.cgi?id=96686
+
+ Does not compile on windows (Requested by jamesr on #webkit).
+
+ * public/WebIDBDatabase.h:
+ * public/WebIDBFactory.h:
+ (WebIDBFactory):
+ * src/IDBCallbacksProxy.cpp:
+ (WebKit::IDBCallbacksProxy::onSuccess):
+ (WebKit::IDBCallbacksProxy::onUpgradeNeeded):
+ * src/IDBCallbacksProxy.h:
+ (WebKit):
+ (IDBCallbacksProxy):
+ * src/IDBDatabaseBackendProxy.cpp:
+ (WebKit::IDBDatabaseBackendProxy::registerFrontendCallbacks):
+ (WebKit):
+ * src/IDBDatabaseBackendProxy.h:
+ (IDBDatabaseBackendProxy):
+ * src/IDBFactoryBackendProxy.cpp:
+ (WebKit::IDBFactoryBackendProxy::open):
+ * src/IDBFactoryBackendProxy.h:
+ (IDBFactoryBackendProxy):
+ * src/WebIDBDatabaseImpl.cpp:
+ (WebKit::WebIDBDatabaseImpl::WebIDBDatabaseImpl):
+ (WebKit::WebIDBDatabaseImpl::close):
+ (WebKit::WebIDBDatabaseImpl::open):
+ (WebKit):
+ * src/WebIDBDatabaseImpl.h:
+ (WebIDBDatabaseImpl):
+ * src/WebIDBFactoryImpl.cpp:
+ (WebKit::WebIDBFactoryImpl::open):
+ * src/WebIDBFactoryImpl.h:
+ (WebIDBFactoryImpl):
+ * tests/IDBAbortOnCorruptTest.cpp:
+ (WebCore::TEST):
+ * tests/IDBDatabaseBackendTest.cpp:
+
+2012-09-13 Glenn Hartmann <hartmanng@chromium.org>
+
+ Add new accelerated compositing for overflow scroll setting.
+ https://bugs.webkit.org/show_bug.cgi?id=95885
+
+ Reviewed by James Robinson.
+
+ wkb.ug/91117 introduces RenderLayer::usesCompositedScrolling(), which
+ currently returns true if we're overflow scrolling and the element has
+ been styled with '-webkit-overflow-scrolling: touch'. If this is true,
+ we get promoted to a composited layer, the associated RenderLayerBacking
+ gets special scrolling layers and in response to RenderLayer::scrollTo()
+ we no longer have to invalidate everything to get the scrolled content
+ in the right spot, thereby avoiding very expensive repaints. It's
+ unfortunate that we require -webkit-overflow-scrolling: touch, though.
+ It would be nice if RenderLayer::usesCompositedScrolling() returned true
+ if the page would continue to behave correctly. This is what
+ wkb.ug/94743 is intended to do. Unfortunately, when we become a
+ composited layer, we switch from subpixel to grayscale anti-aliasing. We
+ only want to auto-opt into composited scrolling if we don't mind the
+ change in anti-aliasing, so we need a flag to enable/disable this
+ feature.
+
+ * public/WebSettings.h:
+ * src/WebSettingsImpl.cpp:
+ (WebKit::WebSettingsImpl::setAcceleratedCompositingForOverflowScrollEnabled):
+ (WebKit):
+ * src/WebSettingsImpl.h:
+ (WebSettingsImpl):
+
+2012-09-13 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Consolidate two-phase connection to avoid race conditions
+ https://bugs.webkit.org/show_bug.cgi?id=90411
+
+ Reviewed by Tony Chang.
+
+ API plumbing for simplified single-phase connection opening, and tests updated
+ to exercise the new APIs.
+
+ * public/WebIDBDatabase.h:
+ (WebIDBDatabase): Just a FIXME to remove the old second-phase hookup API.
+ * public/WebIDBFactory.h:
+ (WebKit):
+ (WebIDBFactory):
+ (WebKit::WebIDBFactory::open): New overload that takes db-callbacks.
+ * src/IDBCallbacksProxy.cpp: The db-callbacks plumbing is needed earlier.
+ (WebKit::IDBCallbacksProxy::onSuccess):
+ (WebKit::IDBCallbacksProxy::onUpgradeNeeded):
+ (WebKit):
+ (WebKit::IDBCallbacksProxy::setDatabaseCallbacks): Needs to hold on to
+ the db-callbacks and hook it up when the onSuccess callback comes through.
+ * src/IDBCallbacksProxy.h:
+ (WebKit):
+ (IDBCallbacksProxy):
+ * src/IDBDatabaseBackendProxy.cpp:
+ * src/IDBDatabaseBackendProxy.h:
+ (IDBDatabaseBackendProxy):
+ * src/IDBFactoryBackendProxy.cpp:
+ (WebKit::IDBFactoryBackendProxy::open):
+ * src/IDBFactoryBackendProxy.h:
+ (IDBFactoryBackendProxy):
+ * src/WebIDBDatabaseImpl.cpp:
+ (WebKit::WebIDBDatabaseImpl::WebIDBDatabaseImpl):
+ (WebKit::WebIDBDatabaseImpl::close):
+ * src/WebIDBDatabaseImpl.h:
+ (WebIDBDatabaseImpl):
+ * src/WebIDBFactoryImpl.cpp:
+ (WebKit::WebIDBFactoryImpl::open):
+ * src/WebIDBFactoryImpl.h:
+ (WebIDBFactoryImpl):
+ * tests/IDBAbortOnCorruptTest.cpp:
+ (FakeIDBDatabaseCallbacks):
+ (WebCore::FakeIDBDatabaseCallbacks::create):
+ (WebCore::FakeIDBDatabaseCallbacks::~FakeIDBDatabaseCallbacks):
+ (WebCore::FakeIDBDatabaseCallbacks::FakeIDBDatabaseCallbacks):
+ (WebCore):
+ (WebCore::TEST): Updated connection sequence.
+ * tests/IDBDatabaseBackendTest.cpp: Ditto.
+
+2012-09-13 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed. Rolled DEPS.
+
+ * DEPS:
+
+2012-09-13 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: NMI: instrument KURL directly.
+ https://bugs.webkit.org/show_bug.cgi?id=96624
+
+ Reviewed by Yury Semikhatsky.
+
+ I replaced traits based instrumentation of KURL with reportMemoryUsage functions.
+ CString* were also instrumented.
+
+ Drive by fix: Instrumentation code in QualifiedName was moved to cpp.
+
+ * tests/MemoryInstrumentationTest.cpp:
+ (WebCore):
+ (InstrumentedOwner):
+ (WebCore::InstrumentedOwner::InstrumentedOwner):
+ (WebCore::InstrumentedOwner::reportMemoryUsage):
+ (WebCore::TEST):
+
+2012-09-13 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r128409.
+ http://trac.webkit.org/changeset/128409
+ https://bugs.webkit.org/show_bug.cgi?id=96622
+
+ It broke Chromium browser_tests (Requested by tkent on
+ #webkit).
+
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::scopeStringMatches):
+ (WebKit::WebFrameImpl::shouldScopeMatches):
+
+2012-09-13 Taiju Tsuiki <tzik@chromium.org>
+
+ Check if WorkerContext is terminated in WebWorkerClientImple::openFileSystem call.
+ https://bugs.webkit.org/show_bug.cgi?id=96601
+
+ Reviewed by Kent Tamura.
+
+ m_webFrame might be already deleted after terminateWorkerContext call.
+ This patch ensure it be NULL and change to avoid using it.
+
+ Test: fast/filesystem/workers/detached-frame-crash.html
+
+ * src/WebWorkerClientImpl.cpp:
+ (WebKit::WebWorkerClientImpl::terminateWorkerContext):
+ (WebKit::WebWorkerClientImpl::openFileSystem):
+
+2012-09-12 Leandro Gracia Gil <leandrogracia@chromium.org>
+
+ [Chromium] Fix cases where find-in-page doesn't send a final update
+ https://bugs.webkit.org/show_bug.cgi?id=96402
+
+ Fix some issues in the WebKit implementation that prevented to send a final
+ reportFindInPageMatchCount message.
+
+ Reviewed by Adam Barth.
+
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::scopeStringMatches):
+ (WebKit::WebFrameImpl::shouldScopeMatches):
+
+2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r127876.
+ http://trac.webkit.org/changeset/127876
+ https://bugs.webkit.org/show_bug.cgi?id=96600
+
+ mouse click doesn't work for spin button if spin button in
+ iframe (Requested by yosin on #webkit).
+
+ * src/ContextMenuClientImpl.cpp:
+ (WebKit::selectMisspelledWord):
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::dispatchDecidePolicyForNavigationAction):
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::characterIndexForPoint):
+ * src/WebPluginContainerImpl.cpp:
+ (WebKit::WebPluginContainerImpl::isRectTopmost):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::handleMouseUp):
+ (WebKit::WebViewImpl::computeBlockBounds):
+
+2012-09-12 Rick Byers <rbyers@chromium.org>
+
+ [chromium] Remove unused WebGestureEvent fields
+ https://bugs.webkit.org/show_bug.cgi?id=95496
+
+ Reviewed by Adam Barth.
+
+ Remove the no-longer used fields from WebGestureEvent, now that
+ chromium has been updated to use the per-event-type fields instead.
+ This depends on crrev.com/156346 in chromium.
+
+ * public/WebInputEvent.h:
+ (WebKit::WebGestureEvent::WebGestureEvent):
+ * public/android/WebInputEventFactory.h:
+ * src/WebInputEvent.cpp:
+ (SameSizeAsWebGestureEvent):
+ * src/android/WebInputEventFactory.cpp:
+ (WebKit):
+ (WebKit::WebInputEventFactory::gestureEvent):
+
+2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r128351.
+ http://trac.webkit.org/changeset/128351
+ https://bugs.webkit.org/show_bug.cgi?id=96573
+
+ Broke FindInPage browser_tests (Requested by jamesr_ on
+ #webkit).
+
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::scopeStringMatches):
+ (WebKit::WebFrameImpl::cancelPendingScopingEffort):
+ (WebKit::WebFrameImpl::setFindEndstateFocusAndSelection):
+ (WebKit::WebFrameImpl::shouldScopeMatches):
+
+2012-09-12 Adrienne Walker <enne@google.com>
+
+ [chromium] Fix search tickmarks not disappearing when compositing is enabled
+ https://bugs.webkit.org/show_bug.cgi?id=96536
+
+ Reviewed by James Robinson.
+
+ view->invalidateRect() on the root frame just invalidates the
+ contents, since WebViewImpl doesn't know anything about scrollbar
+ layers. This causes an "InvalidateAll" to not actually invalidate the
+ scrollbars.
+
+ To fix this, make WebFrameImpl explicitly invalidate the
+ scrollbars when required.
+
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::invalidateArea):
+
+2012-09-12 Leandro Gracia Gil <leandrogracia@chromium.org>
+
+ [Chromium] Fix cases where find-in-page doesn't send a final update
+ https://bugs.webkit.org/show_bug.cgi?id=96402
+
+ Fix some issues in the WebKit implementation that prevented to send a final
+ reportFindInPageMatchCount message. Also, fix a buggy reset of the active match
+ when calling the stopFinding method.
+
+ Reviewed by Adam Barth.
+
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::scopeStringMatches):
+ (WebKit::WebFrameImpl::cancelPendingScopingEffort):
+ (WebKit::WebFrameImpl::setFindEndstateFocusAndSelection):
+ (WebKit::WebFrameImpl::shouldScopeMatches):
+
+2012-09-12 Sami Kyostila <skyostil@google.com>
+
+ Rename OVERFLOW_SCROLLING as ACCELERATED_OVERFLOW_SCROLLING
+ https://bugs.webkit.org/show_bug.cgi?id=96251
+
+ Reviewed by Simon Fraser.
+
+ Rename OVERFLOW_SCROLLING as ACCELERATED_OVERFLOW_SCROLLING to better describe
+ the feature it controls.
+
+ * features.gypi:
+
+2012-09-12 Christopher Cameron <ccameron@chromium.org>
+
+ [chromium] Evict textures through the texture manager instead of the resource provider
+ https://bugs.webkit.org/show_bug.cgi?id=96463
+
+ Reviewed by James Robinson.
+
+ Update layer tree host impl test to include the extra interface functions
+ added to CCLayerTreeHostImplClient.
+
+ * tests/CCLayerTreeHostImplTest.cpp:
+
+2012-09-12 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: NMI move String* instrumentation to wtf.
+ https://bugs.webkit.org/show_bug.cgi?id=96405
+
+ Reviewed by Yury Semikhatsky.
+
+ This instrumentation is solving the problem with substrings and removes traits based code which is hard to upstream.
+
+ Tested by webkit_unit_tests.
+
+ * tests/MemoryInstrumentationTest.cpp:
+ (WebCore::TEST):
+
+2012-09-12 Philippe Liard <pliard@google.com>
+
+ Depend on {base,net} GYP targets rather than {base,net}_java.
+ https://bugs.webkit.org/show_bug.cgi?id=95690
+
+ Reviewed by Adam Barth.
+
+ {base,net}_java became 'private' targets on the Chromium side that
+ clients should not depend on (see
+ https://chromiumcodereview.appspot.com/10913083/).
+ This also adds the missing 'chromium_net.jar' to |input_jars_paths|
+ that was magically included in Chrome for Android downstream but not
+ upstream. It's needed to register JNI for 'net' in webkit_unit_tests.
+
+
+ * WebKitUnitTests.gyp:
+
+2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r128279.
+ http://trac.webkit.org/changeset/128279
+ https://bugs.webkit.org/show_bug.cgi?id=96487
+
+ "Snow Leopard compilation broken" (Requested by yurys on
+ #webkit).
+
+ * tests/MemoryInstrumentationTest.cpp:
+ (WebCore::InstrumentedUndefined::reportMemoryUsage):
+ (WebCore::TEST):
+
+2012-09-12 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: NMI move String* instrumentation to wtf.
+ https://bugs.webkit.org/show_bug.cgi?id=96405
+
+ Reviewed by Yury Semikhatsky.
+
+ This instrumentation is solving the problem with substrings and removes traits based code which is hard to upstream.
+
+ Tested by webkit_unit_tests.
+
+ * tests/MemoryInstrumentationTest.cpp:
+ (WebCore::InstrumentedUndefined::reportMemoryUsage):
+ (WebCore::TEST):
+
+2012-09-12 Jochen Eisinger <jochen@chromium.org>
+
+ [chromium] consumable user gesture count off for input events
+ https://bugs.webkit.org/show_bug.cgi?id=96373
+
+ Reviewed by Adam Barth.
+
+ Don't create a UserGestureIndicator in the chromium layer, as it will
+ already be created by webcore's event handler. Creating multiple
+ UserGestureIndicator objects for the same object would allow to execute
+ multiple user-gesture-gated actions per user gesture such as opening a
+ new window.
+
+ * public/WebInputEvent.h:
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::handleInputEvent):
+
+2012-09-12 Alexandre Elias <aelias@chromium.org>
+
+ [chromium] Flip Y and swizzle inside compositeAndReadback implementation
+ https://bugs.webkit.org/show_bug.cgi?id=96458
+
+ Reviewed by James Robinson.
+
+ Currently, compositeAndReadback API assumes a GL-style texture
+ and is converted to the normal software format in WebViewImpl.
+ For the software implementation, this API would result in two
+ redundant conversions. This patch makes the conversion inside
+ CCRendererGL instead. I rolled my own for loop as I didn't find the
+ appropriate function within raw Skia.
+
+ No new tests (covered by existing layout tests).
+
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::doPixelReadbackToCanvas):
+
+2012-09-11 Taiju Tsuiki <tzik@chromium.org>
+
+ WebFrameImpl::client() needs NULL check in WebWorkerClientImpl::openFileSystem
+ https://bugs.webkit.org/show_bug.cgi?id=96354
+
+ Reviewed by Kent Tamura.
+
+ Ensure non-NULL before using WebFrameImpl::client().
+
+ Test: fast/filesystem/workers/detached-frame-crash.html
+
+ * src/WebWorkerClientImpl.cpp:
+ (WebKit::WebWorkerClientImpl::openFileSystem):
+
+2012-09-11 Keishi Hattori <keishi@webkit.org>
+
+ Create Localizer factory method for LocaleICU
+ https://bugs.webkit.org/show_bug.cgi?id=96363
+
+ Reviewed by Kent Tamura.
+
+ * tests/LocalizedNumberICUTest.cpp:
+ (testNumberIsReversible):
+ (testDecimalSeparator):
+
+2012-09-11 Christopher Cameron <ccameron@chromium.org>
+
+ [chromium] Make prioritized texture manager not touch backings array on the main thread
+ https://bugs.webkit.org/show_bug.cgi?id=96114
+
+ Reviewed by James Robinson.
+
+ Take a snapshot of the textures' priorities from the main thread,
+ and save it in their backings for access by the impl thread.
+ Update functions that access the sorted backings array to use the
+ snapshotted values instead of the values that the main thread may
+ have computed for the next frame.
+
+ Make the main thread not touch the m_backings array. Split
+ prioritizeTextures into a updateBackingsPriorities function.
+ In places where the main thread would have touched m_backings,
+ set a flag specifying that m_backings needs to be re-sorted
+ before any function that requires it be sorted by priority be
+ executed.
+
+ Update the two functions that require sorted order (acquireBacking
+ and reduceMemory) to sort the backings array (if needed) before
+ traversing it.
+
+ Updated tests to set correct thread during asserts. Add a test to
+ verify that requestLate is correctly incorporated into the backing
+ sorting.
+
+ * tests/CCPrioritizedTextureTest.cpp:
+ (WTF::CCPrioritizedTextureTest::validateTexture):
+
+2012-09-11 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed. Rolled DEPS.
+
+ * DEPS:
+
2012-09-11 Iain Merrick <husky@chromium.org>
[chromium] Fix double call to scrollBegin() when handling scroll gesture
diff --git a/Source/WebKit/chromium/DEPS b/Source/WebKit/chromium/DEPS
index f732b797a..a01b3757e 100644
--- a/Source/WebKit/chromium/DEPS
+++ b/Source/WebKit/chromium/DEPS
@@ -32,7 +32,7 @@
vars = {
'chromium_svn': 'http://src.chromium.org/svn/trunk/src',
- 'chromium_rev': '155883'
+ 'chromium_rev': '156485'
}
deps = {
diff --git a/Source/WebKit/chromium/WebKitUnitTests.gyp b/Source/WebKit/chromium/WebKitUnitTests.gyp
index b0f155a74..18adac9f0 100644
--- a/Source/WebKit/chromium/WebKitUnitTests.gyp
+++ b/Source/WebKit/chromium/WebKitUnitTests.gyp
@@ -145,13 +145,15 @@
'target_name': 'webkit_unit_tests_apk',
'type': 'none',
'dependencies': [
- '<(chromium_src_dir)/base/base.gyp:base_java',
+ '<(chromium_src_dir)/base/base.gyp:base',
+ '<(chromium_src_dir)/net/net.gyp:net',
'webkit_unit_tests',
],
'variables': {
'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)webkit_unit_tests<(SHARED_LIB_SUFFIX)',
'input_jars_paths': [
'<(PRODUCT_DIR)/lib.java/chromium_base.jar',
+ '<(PRODUCT_DIR)/lib.java/chromium_net.jar',
],
'conditions': [
['inside_chromium_build==1', {
@@ -171,7 +173,7 @@
'<(chromium_src_dir)/testing/android/AndroidManifest.xml',
'<(chromium_src_dir)/testing/android/generate_native_test.py',
'<(input_shlib_path)',
- '<@(input_jars_paths)',
+ '>@(input_jars_paths)',
],
'outputs': [
'<(PRODUCT_DIR)/webkit_unit_tests_apk/webkit_unit_tests-debug.apk',
@@ -181,7 +183,7 @@
'--native_library',
'<(input_shlib_path)',
'--jars',
- '"<@(input_jars_paths)"',
+ '">@(input_jars_paths)"',
'--output',
'<(PRODUCT_DIR)/webkit_unit_tests_apk',
'--strip-binary=<(android_strip)',
diff --git a/Source/WebKit/chromium/features.gypi b/Source/WebKit/chromium/features.gypi
index 4664b04a4..b98db36d9 100644
--- a/Source/WebKit/chromium/features.gypi
+++ b/Source/WebKit/chromium/features.gypi
@@ -147,6 +147,7 @@
'conditions': [
['OS=="android"', {
'feature_defines': [
+ 'ENABLE_ACCELERATED_OVERFLOW_SCROLLING=1',
'ENABLE_CALENDAR_PICKER=0',
'ENABLE_DATALIST_ELEMENT=0',
'ENABLE_INPUT_SPEECH=0',
@@ -157,7 +158,6 @@
'ENABLE_MEDIA_STREAM=0',
'ENABLE_NOTIFICATIONS=0',
'ENABLE_ORIENTATION_EVENTS=1',
- 'ENABLE_OVERFLOW_SCROLLING=1',
'ENABLE_PAGE_POPUP=0',
'ENABLE_PRINTING=0',
# FIXME: Disable once the linking error has been resolved.
@@ -169,6 +169,7 @@
'enable_touch_icon_loading': 1,
}, { # OS!="android"
'feature_defines': [
+ 'ENABLE_ACCELERATED_OVERFLOW_SCROLLING=0',
'ENABLE_CALENDAR_PICKER=1',
'ENABLE_DATALIST_ELEMENT=1',
'ENABLE_INPUT_SPEECH=1',
@@ -180,7 +181,6 @@
'ENABLE_MEDIA_STREAM=1',
'ENABLE_NOTIFICATIONS=1',
'ENABLE_ORIENTATION_EVENTS=0',
- 'ENABLE_OVERFLOW_SCROLLING=0',
'ENABLE_PAGE_POPUP=1',
'ENABLE_PRINTING=1',
'ENABLE_SHARED_WORKERS=1',
diff --git a/Source/WebKit/chromium/public/WebIDBDatabase.h b/Source/WebKit/chromium/public/WebIDBDatabase.h
index a8b035c72..592a10e3e 100644
--- a/Source/WebKit/chromium/public/WebIDBDatabase.h
+++ b/Source/WebKit/chromium/public/WebIDBDatabase.h
@@ -66,6 +66,7 @@ public:
virtual void close() { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void forceClose() { WEBKIT_ASSERT_NOT_REACHED(); }
+ // FIXME: Remove this method after WK90411 cleanup is complete on the Chromium side.
virtual void open(WebIDBDatabaseCallbacks*) { WEBKIT_ASSERT_NOT_REACHED(); }
protected:
diff --git a/Source/WebKit/chromium/public/WebIDBFactory.h b/Source/WebKit/chromium/public/WebIDBFactory.h
index 70c8c840c..69a453abc 100644
--- a/Source/WebKit/chromium/public/WebIDBFactory.h
+++ b/Source/WebKit/chromium/public/WebIDBFactory.h
@@ -55,7 +55,7 @@ public:
virtual void getDatabaseNames(WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir) { WEBKIT_ASSERT_NOT_REACHED(); }
- // FIXME: This overload should be removed when WK90411 lands.
+ // FIXME: Remove this overload after WK90411 cleanup is complete on the Chromium side.
// The WebKit implementation of open ignores the WebFrame* parameter.
virtual void open(const WebString& name, long long version, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir) { WEBKIT_ASSERT_NOT_REACHED(); }
diff --git a/Source/WebKit/chromium/public/WebInputEvent.h b/Source/WebKit/chromium/public/WebInputEvent.h
index 916622194..075bd0c4e 100644
--- a/Source/WebKit/chromium/public/WebInputEvent.h
+++ b/Source/WebKit/chromium/public/WebInputEvent.h
@@ -194,16 +194,6 @@ public:
|| type == TouchCancel;
}
- // Returns true if the WebInputEvent |type| should be handled as user gesture.
- static bool isUserGestureEventType(int type)
- {
- return isKeyboardEventType(type)
- || type == MouseDown
- || type == MouseUp
- || type == TouchStart
- || type == TouchEnd;
- }
-
// Returns true if the WebInputEvent is a gesture event.
static bool isGestureEventType(int type)
{
@@ -388,12 +378,6 @@ public:
int globalX;
int globalY;
- // FIXME: These are currently overloaded. We're in the process of moving
- // to the union below. http://wkb.ug/93123
- float deltaX;
- float deltaY;
- WebRect boundingBox;
-
union {
struct {
int tapCount;
@@ -430,8 +414,6 @@ public:
, y(0)
, globalX(0)
, globalY(0)
- , deltaX(0.0f)
- , deltaY(0.0f)
{
memset(&data, 0, sizeof(data));
}
diff --git a/Source/WebKit/chromium/public/WebSettings.h b/Source/WebKit/chromium/public/WebSettings.h
index f47ff9f7c..fd0dcb649 100644
--- a/Source/WebKit/chromium/public/WebSettings.h
+++ b/Source/WebKit/chromium/public/WebSettings.h
@@ -61,6 +61,7 @@ public:
virtual void setAcceleratedCompositingForAnimationEnabled(bool) = 0;
virtual void setAcceleratedCompositingForCanvasEnabled(bool) = 0;
virtual void setAcceleratedCompositingForFixedPositionEnabled(bool) = 0;
+ virtual void setAcceleratedCompositingForOverflowScrollEnabled(bool) = 0;
virtual void setAcceleratedCompositingForPluginsEnabled(bool) = 0;
virtual void setAcceleratedCompositingForVideoEnabled(bool) = 0;
virtual void setAcceleratedFiltersEnabled(bool) = 0;
diff --git a/Source/WebKit/chromium/public/android/WebInputEventFactory.h b/Source/WebKit/chromium/public/android/WebInputEventFactory.h
index f1edbb1a7..9bff1975f 100644
--- a/Source/WebKit/chromium/public/android/WebInputEventFactory.h
+++ b/Source/WebKit/chromium/public/android/WebInputEventFactory.h
@@ -81,6 +81,11 @@ public:
float deltaY,
int modifiers);
+ WEBKIT_EXPORT static WebGestureEvent gestureEvent(WebInputEvent::Type,
+ double timeStampSeconds,
+ int x,
+ int y,
+ int modifiers);
};
} // namespace WebKit
diff --git a/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp b/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
index 2fd6431c1..5b0b01014 100644
--- a/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
+++ b/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
@@ -122,7 +122,7 @@ static String selectMisspelledWord(const ContextMenu* defaultMenu, Frame* select
// Selection is empty, so change the selection to the word under the cursor.
HitTestResult hitTestResult = selectedFrame->eventHandler()->
- hitTestResultAtPoint(selectedFrame->page()->contextMenuController()->hitTestResult().point(), HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::AllowShadowContent);
+ hitTestResultAtPoint(selectedFrame->page()->contextMenuController()->hitTestResult().point(), true);
Node* innerNode = hitTestResult.innerNode();
VisiblePosition pos(innerNode->renderer()->positionForPoint(
hitTestResult.localPoint()));
@@ -160,7 +160,7 @@ PlatformMenuDescription ContextMenuClientImpl::getCustomMenuFromDefaultItems(
Frame* selectedFrame = r.innerNonSharedNode()->document()->frame();
WebContextMenuData data;
- data.mousePosition = selectedFrame->view()->contentsToWindow(r.roundedPoint());
+ data.mousePosition = r.roundedPoint();
// Compute edit flags.
data.editFlags = WebContextMenuData::CanDoNone;
diff --git a/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp b/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp
index c99bd7c57..5dd02b563 100644
--- a/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp
+++ b/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp
@@ -997,7 +997,8 @@ void FrameLoaderClientImpl::dispatchDecidePolicyForNavigationAction(
if (event->isMouseEvent()) {
const MouseEvent* mouseEvent =
static_cast<const MouseEvent*>(event);
- node = m_webFrame->frame()->eventHandler()->hitTestResultAtPoint(mouseEvent->absoluteLocation()).innerNonSharedNode();
+ node = m_webFrame->frame()->eventHandler()->hitTestResultAtPoint(
+ mouseEvent->absoluteLocation(), false).innerNonSharedNode();
break;
}
}
diff --git a/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp b/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp
index 193bf2b5f..af4984a77 100644
--- a/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp
+++ b/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp
@@ -34,13 +34,15 @@
#include "IDBCursorBackendInterface.h"
#include "IDBDatabaseBackendInterface.h"
#include "IDBDatabaseBackendProxy.h"
+#include "IDBDatabaseCallbacksProxy.h"
#include "IDBDatabaseError.h"
#include "IDBObjectStoreBackendInterface.h"
#include "IDBTransactionBackendInterface.h"
#include "WebIDBCallbacks.h"
#include "WebIDBCursorImpl.h"
-#include "WebIDBDatabaseImpl.h"
+#include "WebIDBDatabaseCallbacks.h"
#include "WebIDBDatabaseError.h"
+#include "WebIDBDatabaseImpl.h"
#include "WebIDBKey.h"
#include "WebIDBTransactionImpl.h"
#include "platform/WebSerializedScriptValue.h"
@@ -75,7 +77,8 @@ void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBCursorBackendInterface> idbCurso
void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBDatabaseBackendInterface> backend)
{
- m_callbacks->onSuccess(new WebIDBDatabaseImpl(backend));
+ ASSERT(m_databaseCallbacks.get());
+ m_callbacks->onSuccess(new WebIDBDatabaseImpl(backend, m_databaseCallbacks.release()));
}
void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBKey> idbKey)
@@ -137,9 +140,17 @@ void IDBCallbacksProxy::onBlocked(int64_t existingVersion)
void IDBCallbacksProxy::onUpgradeNeeded(int64_t oldVersion, PassRefPtr<IDBTransactionBackendInterface> transaction, PassRefPtr<IDBDatabaseBackendInterface> database)
{
- m_callbacks->onUpgradeNeeded(oldVersion, new WebIDBTransactionImpl(transaction), new WebIDBDatabaseImpl(database));
+ ASSERT(m_databaseCallbacks);
+ m_callbacks->onUpgradeNeeded(oldVersion, new WebIDBTransactionImpl(transaction), new WebIDBDatabaseImpl(database, m_databaseCallbacks));
+}
+
+void IDBCallbacksProxy::setDatabaseCallbacks(PassRefPtr<IDBDatabaseCallbacksProxy> databaseCallbacks)
+{
+ ASSERT(!m_databaseCallbacks);
+ m_databaseCallbacks = databaseCallbacks;
}
} // namespace WebKit
+
#endif // ENABLE(INDEXED_DATABASE)
diff --git a/Source/WebKit/chromium/src/IDBCallbacksProxy.h b/Source/WebKit/chromium/src/IDBCallbacksProxy.h
index 825758aad..f613a85c2 100644
--- a/Source/WebKit/chromium/src/IDBCallbacksProxy.h
+++ b/Source/WebKit/chromium/src/IDBCallbacksProxy.h
@@ -39,6 +39,7 @@
namespace WebKit {
class WebIDBCallbacks;
+class IDBDatabaseCallbacksProxy;
class IDBCallbacksProxy : public WebCore::IDBCallbacks {
public:
@@ -59,10 +60,13 @@ public:
virtual void onBlocked(int64_t existingVersion);
virtual void onUpgradeNeeded(int64_t oldVersion, PassRefPtr<WebCore::IDBTransactionBackendInterface>, PassRefPtr<WebCore::IDBDatabaseBackendInterface>);
+ void setDatabaseCallbacks(PassRefPtr<IDBDatabaseCallbacksProxy>);
+
private:
IDBCallbacksProxy(PassOwnPtr<WebIDBCallbacks>);
OwnPtr<WebIDBCallbacks> m_callbacks;
+ RefPtr<IDBDatabaseCallbacksProxy> m_databaseCallbacks;
};
} // namespace WebKit
diff --git a/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp b/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp
index 56afe5fb5..501ce61fb 100644
--- a/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp
+++ b/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp
@@ -107,11 +107,6 @@ void IDBDatabaseBackendProxy::close(PassRefPtr<IDBDatabaseCallbacks>)
m_webIDBDatabase->close();
}
-void IDBDatabaseBackendProxy::registerFrontendCallbacks(PassRefPtr<IDBDatabaseCallbacks> databaseCallbacks)
-{
- m_webIDBDatabase->open(new WebIDBDatabaseCallbacksImpl(databaseCallbacks));
-}
-
} // namespace WebKit
#endif // ENABLE(INDEXED_DATABASE)
diff --git a/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h b/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h
index 2a93600c6..795610aa6 100644
--- a/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h
+++ b/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h
@@ -50,8 +50,6 @@ public:
virtual PassRefPtr<WebCore::IDBTransactionBackendInterface> transaction(WebCore::DOMStringList* storeNames, unsigned short mode, WebCore::ExceptionCode&);
virtual void close(PassRefPtr<WebCore::IDBDatabaseCallbacks>);
- virtual void registerFrontendCallbacks(PassRefPtr<WebCore::IDBDatabaseCallbacks>);
-
private:
IDBDatabaseBackendProxy(PassOwnPtr<WebIDBDatabase>);
diff --git a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp
index babcbae18..28995ec66 100755
--- a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp
+++ b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp
@@ -34,12 +34,14 @@
#include "CrossThreadTask.h"
#include "DOMStringList.h"
#include "IDBDatabaseBackendProxy.h"
+#include "IDBDatabaseCallbacks.h"
#include "IDBDatabaseError.h"
#include "ScriptExecutionContext.h"
#include "SecurityOrigin.h"
#include "WebFrameImpl.h"
#include "WebIDBCallbacksImpl.h"
#include "WebIDBDatabase.h"
+#include "WebIDBDatabaseCallbacksImpl.h"
#include "WebIDBDatabaseError.h"
#include "WebIDBFactory.h"
#include "WebKit.h"
@@ -203,15 +205,16 @@ void IDBFactoryBackendProxy::getDatabaseNames(PassRefPtr<IDBCallbacks> prpCallba
}
-void IDBFactoryBackendProxy::open(const String& name, int64_t version, PassRefPtr<IDBCallbacks> prpCallbacks, PassRefPtr<SecurityOrigin> securityOrigin, ScriptExecutionContext* context, const String& dataDir)
+void IDBFactoryBackendProxy::open(const String& name, int64_t version, PassRefPtr<IDBCallbacks> prpCallbacks, PassRefPtr<IDBDatabaseCallbacks> prpDatabaseCallbacks, PassRefPtr<SecurityOrigin> securityOrigin, ScriptExecutionContext* context, const String& dataDir)
{
RefPtr<IDBCallbacks> callbacks(prpCallbacks);
+ RefPtr<IDBDatabaseCallbacks> databaseCallbacks(prpDatabaseCallbacks);
WebSecurityOrigin origin(securityOrigin);
if (!allowIndexedDB(context, name, origin, callbacks))
return;
WebFrameImpl* webFrame = getWebFrame(context);
- m_webIDBFactory->open(name, version, new WebIDBCallbacksImpl(callbacks), origin, webFrame, dataDir);
+ m_webIDBFactory->open(name, version, new WebIDBCallbacksImpl(callbacks), new WebIDBDatabaseCallbacksImpl(databaseCallbacks), origin, webFrame, dataDir);
}
void IDBFactoryBackendProxy::deleteDatabase(const String& name, PassRefPtr<IDBCallbacks> prpCallbacks, PassRefPtr<SecurityOrigin> securityOrigin, ScriptExecutionContext* context, const String& dataDir)
diff --git a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h
index c0de910a9..88380d7a4 100644
--- a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h
+++ b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h
@@ -49,7 +49,7 @@ public:
virtual ~IDBFactoryBackendProxy();
virtual void getDatabaseNames(PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir);
- virtual void open(const String& name, int64_t version, PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir);
+ virtual void open(const String& name, int64_t version, PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::IDBDatabaseCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir);
virtual void deleteDatabase(const String& name, PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir);
private:
diff --git a/Source/WebKit/chromium/src/WebFrameImpl.cpp b/Source/WebKit/chromium/src/WebFrameImpl.cpp
index 1d187f09e..eb02351da 100644
--- a/Source/WebKit/chromium/src/WebFrameImpl.cpp
+++ b/Source/WebKit/chromium/src/WebFrameImpl.cpp
@@ -1265,7 +1265,7 @@ size_t WebFrameImpl::characterIndexForPoint(const WebPoint& webPoint) const
return notFound;
IntPoint point = frame()->view()->windowToContents(webPoint);
- HitTestResult result = frame()->eventHandler()->hitTestResultAtPoint(point);
+ HitTestResult result = frame()->eventHandler()->hitTestResultAtPoint(point, false);
RefPtr<Range> range = frame()->rangeForPoint(result.roundedPoint());
if (!range)
return notFound;
@@ -2571,13 +2571,13 @@ void WebFrameImpl::invalidateArea(AreaToInvalidate area)
contentArea.move(-frameRect.x(), -frameRect.y());
view->invalidateRect(contentArea);
}
+ }
- if ((area & InvalidateScrollbar) == InvalidateScrollbar) {
- // Invalidate the vertical scroll bar region for the view.
- Scrollbar* scrollbar = view->verticalScrollbar();
- if (scrollbar)
- scrollbar->invalidate();
- }
+ if ((area & InvalidateScrollbar) == InvalidateScrollbar) {
+ // Invalidate the vertical scroll bar region for the view.
+ Scrollbar* scrollbar = view->verticalScrollbar();
+ if (scrollbar)
+ scrollbar->invalidate();
}
}
diff --git a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
index 0d142bc02..52879a9a7 100644
--- a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
+++ b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
@@ -45,8 +45,9 @@ using namespace WebCore;
namespace WebKit {
-WebIDBDatabaseImpl::WebIDBDatabaseImpl(PassRefPtr<IDBDatabaseBackendInterface> databaseBackend)
+WebIDBDatabaseImpl::WebIDBDatabaseImpl(PassRefPtr<IDBDatabaseBackendInterface> databaseBackend, WTF::PassRefPtr<IDBDatabaseCallbacksProxy> databaseCallbacks)
: m_databaseBackend(databaseBackend)
+ , m_databaseCallbacks(databaseCallbacks)
, m_closePending(false)
{
}
@@ -93,7 +94,7 @@ WebIDBTransaction* WebIDBDatabaseImpl::transaction(const WebDOMStringList& names
void WebIDBDatabaseImpl::close()
{
- // Use the callbacks that ::open gave us so that the backend in
+ // Use the callbacks passed in to the constructor so that the backend in
// multi-process chromium knows which database connection is closing.
if (!m_databaseCallbacks) {
m_closePending = true;
@@ -113,15 +114,6 @@ void WebIDBDatabaseImpl::forceClose()
callbacks->onForcedClose();
}
-void WebIDBDatabaseImpl::open(WebIDBDatabaseCallbacks* callbacks)
-{
- ASSERT(!m_databaseCallbacks);
- m_databaseCallbacks = IDBDatabaseCallbacksProxy::create(adoptPtr(callbacks));
- m_databaseBackend->registerFrontendCallbacks(m_databaseCallbacks);
- if (m_closePending)
- close();
-}
-
} // namespace WebKit
#endif // ENABLE(INDEXED_DATABASE)
diff --git a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
index 4a8284ce5..9cd1caf59 100644
--- a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
+++ b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
@@ -47,7 +47,7 @@ class WebIDBTransaction;
// See comment in WebIDBFactory for a high level overview these classes.
class WebIDBDatabaseImpl : public WebIDBDatabase {
public:
- WebIDBDatabaseImpl(WTF::PassRefPtr<WebCore::IDBDatabaseBackendInterface>);
+ WebIDBDatabaseImpl(WTF::PassRefPtr<WebCore::IDBDatabaseBackendInterface>, WTF::PassRefPtr<IDBDatabaseCallbacksProxy>);
virtual ~WebIDBDatabaseImpl();
virtual WebIDBMetadata metadata() const;
@@ -59,9 +59,6 @@ public:
virtual void forceClose();
virtual void close();
- // FIXME: Rename "open" to registerFrontendCallbacks.
- virtual void open(WebIDBDatabaseCallbacks*);
-
private:
WTF::RefPtr<WebCore::IDBDatabaseBackendInterface> m_databaseBackend;
WTF::RefPtr<IDBDatabaseCallbacksProxy> m_databaseCallbacks;
diff --git a/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp b/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp
index ad71476b7..94a8d468a 100755
--- a/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp
+++ b/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp
@@ -35,8 +35,10 @@
#include "DOMStringList.h"
#include "IDBCallbacksProxy.h"
+#include "IDBDatabaseCallbacksProxy.h"
#include "IDBFactoryBackendImpl.h"
#include "SecurityOrigin.h"
+#include "WebIDBDatabaseCallbacks.h"
#include "WebIDBDatabaseError.h"
#include <wtf/OwnPtr.h>
@@ -63,9 +65,12 @@ void WebIDBFactoryImpl::getDatabaseNames(WebIDBCallbacks* callbacks, const WebSe
m_idbFactoryBackend->getDatabaseNames(IDBCallbacksProxy::create(adoptPtr(callbacks)), origin, 0, dataDir);
}
-void WebIDBFactoryImpl::open(const WebString& name, long long version, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame*, const WebString& dataDir)
+void WebIDBFactoryImpl::open(const WebString& name, long long version, WebIDBCallbacks* callbacks, WebIDBDatabaseCallbacks* databaseCallbacks, const WebSecurityOrigin& origin, WebFrame*, const WebString& dataDir)
{
- m_idbFactoryBackend->open(name, version, IDBCallbacksProxy::create(adoptPtr(callbacks)).get(), origin, 0, dataDir);
+ RefPtr<IDBCallbacksProxy> callbacksProxy = IDBCallbacksProxy::create(adoptPtr(callbacks));
+ RefPtr<IDBDatabaseCallbacksProxy> databaseCallbacksProxy = IDBDatabaseCallbacksProxy::create(adoptPtr(databaseCallbacks));
+ callbacksProxy->setDatabaseCallbacks(databaseCallbacksProxy);
+ m_idbFactoryBackend->open(name, version, callbacksProxy.get(), databaseCallbacksProxy.get(), origin, 0, dataDir);
}
void WebIDBFactoryImpl::deleteDatabase(const WebString& name, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame*, const WebString& dataDir)
diff --git a/Source/WebKit/chromium/src/WebIDBFactoryImpl.h b/Source/WebKit/chromium/src/WebIDBFactoryImpl.h
index 833eeb591..33f5a21d2 100644
--- a/Source/WebKit/chromium/src/WebIDBFactoryImpl.h
+++ b/Source/WebKit/chromium/src/WebIDBFactoryImpl.h
@@ -45,7 +45,7 @@ public:
virtual ~WebIDBFactoryImpl();
virtual void getDatabaseNames(WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir);
- virtual void open(const WebString& name, long long version, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir);
+ virtual void open(const WebString& name, long long version, WebIDBCallbacks*, WebIDBDatabaseCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir);
virtual void deleteDatabase(const WebString& name, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir);
private:
diff --git a/Source/WebKit/chromium/src/WebInputEvent.cpp b/Source/WebKit/chromium/src/WebInputEvent.cpp
index 96123c62e..10d1f2107 100644
--- a/Source/WebKit/chromium/src/WebInputEvent.cpp
+++ b/Source/WebKit/chromium/src/WebInputEvent.cpp
@@ -60,7 +60,7 @@ struct SameSizeAsWebMouseWheelEvent : public SameSizeAsWebMouseEvent {
};
struct SameSizeAsWebGestureEvent : public SameSizeAsWebInputEvent {
- int gestureData[14];
+ int gestureData[8];
};
struct SameSizeAsWebTouchEvent : public SameSizeAsWebInputEvent {
diff --git a/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp b/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp
index 524ba80f8..5c164319e 100644
--- a/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp
+++ b/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp
@@ -507,7 +507,7 @@ bool WebPluginContainerImpl::isRectTopmost(const WebRect& rect)
LayoutPoint center = documentRect.center();
// Make the rect we're checking (the point surrounded by padding rects) contained inside the requested rect. (Note that -1/2 is 0.)
LayoutSize padding((documentRect.width() - 1) / 2, (documentRect.height() - 1) / 2);
- HitTestResult result = frame->eventHandler()->hitTestResultAtPoint(center, HitTestRequest::ReadOnly | HitTestRequest::Active, padding);
+ HitTestResult result = frame->eventHandler()->hitTestResultAtPoint(center, false, false, DontHitTestScrollbars, HitTestRequest::ReadOnly | HitTestRequest::Active, padding);
const HitTestResult::NodeSet& nodes = result.rectBasedTestResult();
if (nodes.size() != 1)
return false;
diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.cpp b/Source/WebKit/chromium/src/WebSettingsImpl.cpp
index 5026ee94b..51731fd8f 100644
--- a/Source/WebKit/chromium/src/WebSettingsImpl.cpp
+++ b/Source/WebKit/chromium/src/WebSettingsImpl.cpp
@@ -428,6 +428,12 @@ void WebSettingsImpl::setAcceleratedCompositingForVideoEnabled(bool enabled)
m_settings->setAcceleratedCompositingForVideoEnabled(enabled);
}
+void WebSettingsImpl::setAcceleratedCompositingForOverflowScrollEnabled(
+ bool enabled)
+{
+ m_settings->setAcceleratedCompositingForOverflowScrollEnabled(enabled);
+}
+
void WebSettingsImpl::setAcceleratedCompositingForPluginsEnabled(bool enabled)
{
m_settings->setAcceleratedCompositingForPluginsEnabled(enabled);
diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.h b/Source/WebKit/chromium/src/WebSettingsImpl.h
index 6cee2af23..a5f7c0235 100644
--- a/Source/WebKit/chromium/src/WebSettingsImpl.h
+++ b/Source/WebKit/chromium/src/WebSettingsImpl.h
@@ -53,6 +53,7 @@ public:
virtual void setAcceleratedCompositingForAnimationEnabled(bool);
virtual void setAcceleratedCompositingForCanvasEnabled(bool);
virtual void setAcceleratedCompositingForFixedPositionEnabled(bool);
+ virtual void setAcceleratedCompositingForOverflowScrollEnabled(bool);
virtual void setAcceleratedCompositingForPluginsEnabled(bool);
virtual void setAcceleratedCompositingForVideoEnabled(bool);
virtual void setAcceleratedFiltersEnabled(bool);
diff --git a/Source/WebKit/chromium/src/WebViewImpl.cpp b/Source/WebKit/chromium/src/WebViewImpl.cpp
index 238b2f920..d18cd236c 100644
--- a/Source/WebKit/chromium/src/WebViewImpl.cpp
+++ b/Source/WebKit/chromium/src/WebViewImpl.cpp
@@ -120,7 +120,6 @@
#include "TextIterator.h"
#include "Timer.h"
#include "TraceEvent.h"
-#include "UserGestureIndicator.h"
#include "WebAccessibilityObject.h"
#include "WebActiveWheelFlingParameters.h"
#include "WebAutofillClient.h"
@@ -639,7 +638,7 @@ void WebViewImpl::handleMouseUp(Frame& mainFrame, const WebMouseEvent& event)
FrameView* view = m_page->mainFrame()->view();
IntPoint clickPoint(m_lastMouseDownPoint.x, m_lastMouseDownPoint.y);
IntPoint contentPoint = view->windowToContents(clickPoint);
- HitTestResult hitTestResult = focused->eventHandler()->hitTestResultAtPoint(contentPoint, HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::TestChildFrameScrollBars);
+ HitTestResult hitTestResult = focused->eventHandler()->hitTestResultAtPoint(contentPoint, false, false, ShouldHitTestScrollbars);
// We don't want to send a paste when middle clicking a scroll bar or a
// link (which will navigate later in the code). The main scrollbars
// have to be handled separately.
@@ -1008,8 +1007,9 @@ WebRect WebViewImpl::computeBlockBounds(const WebRect& rect, AutoZoomType zoomTy
// Use the rect-based hit test to find the node.
IntPoint point = mainFrameImpl()->frameView()->windowToContents(IntPoint(rect.x, rect.y));
- HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest::Active | ((zoomType == FindInPage) ? HitTestRequest::IgnoreClipping : 0);
- HitTestResult result = mainFrameImpl()->frame()->eventHandler()->hitTestResultAtPoint(point, hitType, IntSize(rect.width, rect.height));
+ HitTestResult result = mainFrameImpl()->frame()->eventHandler()->hitTestResultAtPoint(point,
+ false, zoomType == FindInPage, DontHitTestScrollbars, HitTestRequest::Active | HitTestRequest::ReadOnly,
+ IntSize(rect.width, rect.height));
Node* node = result.innerNonSharedNode();
if (!node)
@@ -1741,28 +1741,11 @@ void WebViewImpl::doPixelReadbackToCanvas(WebCanvas* canvas, const IntRect& rect
{
ASSERT(m_layerTreeView);
- PlatformContextSkia context(canvas);
-
- // PlatformGraphicsContext is actually a pointer to PlatformContextSkia
- GraphicsContext gc(reinterpret_cast<PlatformGraphicsContext*>(&context));
- int bitmapHeight = canvas->getDevice()->accessBitmap(false).height();
-
- // Compute rect to sample from inverted GPU buffer.
- IntRect invertRect(rect.x(), bitmapHeight - rect.maxY(), rect.width(), rect.height());
-
- OwnPtr<ImageBuffer> imageBuffer(ImageBuffer::create(rect.size()));
- RefPtr<Uint8ClampedArray> pixelArray(Uint8ClampedArray::createUninitialized(rect.width() * rect.height() * 4));
- if (imageBuffer && pixelArray) {
- m_layerTreeView->compositeAndReadback(pixelArray->data(), invertRect);
- imageBuffer->putByteArray(Premultiplied, pixelArray.get(), rect.size(), IntRect(IntPoint(), rect.size()), IntPoint());
- gc.save();
- gc.translate(IntSize(0, bitmapHeight));
- gc.scale(FloatSize(1.0f, -1.0f));
- // Use invertRect in next line, so that transform above inverts it back to
- // desired destination rect.
- gc.drawImageBuffer(imageBuffer.get(), ColorSpaceDeviceRGB, invertRect.location());
- gc.restore();
- }
+ SkBitmap target;
+ target.setConfig(SkBitmap::kARGB_8888_Config, rect.width(), rect.height(), rect.width() * 4);
+ target.allocPixels();
+ m_layerTreeView->compositeAndReadback(target.getPixels(), rect);
+ canvas->writePixels(target, rect.x(), rect.y());
}
#endif
@@ -1923,8 +1906,6 @@ const WebInputEvent* WebViewImpl::m_currentInputEvent = 0;
bool WebViewImpl::handleInputEvent(const WebInputEvent& inputEvent)
{
- UserGestureIndicator gestureIndicator(WebInputEvent::isUserGestureEventType(inputEvent.type) ? DefinitelyProcessingUserGesture : PossiblyProcessingUserGesture);
-
// If we've started a drag and drop operation, ignore input events until
// we're done.
if (m_doingDragAndDrop)
diff --git a/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp b/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp
index ccf90ca40..96f04fa4b 100644
--- a/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp
+++ b/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp
@@ -57,6 +57,7 @@
#include "FrameLoaderClientImpl.h"
#include "PlatformMessagePortChannel.h"
+#include "WebFileSystemCallbacks.h"
#include "WebFrameClient.h"
#include "WebFrameImpl.h"
#include "WebMessagePortChannel.h"
@@ -103,6 +104,7 @@ void WebWorkerClientImpl::startWorkerContext(const KURL& scriptURL, const String
void WebWorkerClientImpl::terminateWorkerContext()
{
+ m_webFrame = 0;
m_proxy->terminateWorkerContext();
}
@@ -209,7 +211,11 @@ bool WebWorkerClientImpl::allowFileSystem()
void WebWorkerClientImpl::openFileSystem(WebFileSystem::Type type, long long size, bool create,
WebFileSystemCallbacks* callbacks)
{
- m_webFrame->client()->openFileSystem(m_webFrame, type, size, create, callbacks);
+ if (m_proxy->askedToTerminate()) {
+ callbacks->didFail(WebFileErrorAbort);
+ return;
+ }
+ m_webFrame->client()->openFileSystem(m_webFrame, type, size, create, callbacks);
}
bool WebWorkerClientImpl::allowDatabase(WebFrame*, const WebString& name, const WebString& displayName, unsigned long estimatedSize)
diff --git a/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp b/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp
index 9bc70faca..d0db5fa9d 100644
--- a/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp
+++ b/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp
@@ -148,12 +148,21 @@ WebMouseWheelEvent WebInputEventFactory::mouseWheelEvent(MouseWheelDirectionType
// WebGestureEvent ------------------------------------------------------------
+// FIXME: remove this obsolete version
+WebGestureEvent WebInputEventFactory::gestureEvent(WebInputEvent::Type type,
+ double timeStampSeconds,
+ int x,
+ int y,
+ float,
+ float,
+ int modifiers) {
+ return gestureEvent(type, timeStampSeconds, x, y, modifiers);
+}
+
WebGestureEvent WebInputEventFactory::gestureEvent(WebInputEvent::Type type,
double timeStampSeconds,
int x,
int y,
- float deltaX,
- float deltaY,
int modifiers)
{
WebGestureEvent result;
@@ -161,8 +170,6 @@ WebGestureEvent WebInputEventFactory::gestureEvent(WebInputEvent::Type type,
result.type = type;
result.x = x;
result.y = y;
- result.deltaX = deltaX;
- result.deltaY = deltaY;
result.timeStampSeconds = timeStampSeconds;
result.modifiers = modifiers;
diff --git a/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp b/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp
index d7e955783..3c47864ee 100644
--- a/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp
+++ b/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp
@@ -89,6 +89,7 @@ public:
virtual void setNeedsRedrawOnImplThread() OVERRIDE { m_didRequestRedraw = true; }
virtual void setNeedsCommitOnImplThread() OVERRIDE { m_didRequestCommit = true; }
virtual void postAnimationEventsToMainThreadOnImplThread(PassOwnPtr<CCAnimationEventsVector>, double wallClockTime) OVERRIDE { }
+ virtual void releaseContentsTexturesOnImplThread() OVERRIDE { }
PassOwnPtr<CCLayerTreeHostImpl> createLayerTreeHost(bool partialSwap, PassOwnPtr<CCGraphicsContext> graphicsContext, PassOwnPtr<CCLayerImpl> rootPtr)
{
diff --git a/Source/WebKit/chromium/tests/CCPrioritizedTextureTest.cpp b/Source/WebKit/chromium/tests/CCPrioritizedTextureTest.cpp
index 9076d34d4..7925f5d74 100644
--- a/Source/WebKit/chromium/tests/CCPrioritizedTextureTest.cpp
+++ b/Source/WebKit/chromium/tests/CCPrioritizedTextureTest.cpp
@@ -38,7 +38,7 @@ using namespace WebCore;
using namespace WebKitTests;
using namespace WTF;
-namespace {
+namespace WebCore {
class CCPrioritizedTextureTest : public testing::Test {
public:
@@ -70,11 +70,10 @@ public:
bool validateTexture(OwnPtr<CCPrioritizedTexture>& texture, bool requestLate)
{
-#if !ASSERT_DISABLED
- texture->textureManager()->assertInvariants();
-#endif
+ textureManagerAssertInvariants(texture->textureManager());
if (requestLate)
texture->requestLate();
+ textureManagerAssertInvariants(texture->textureManager());
DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked;
bool success = texture->canAcquireBackingTexture();
if (success)
@@ -82,11 +81,36 @@ public:
return success;
}
+ void prioritizeTexturesAndBackings(CCPrioritizedTextureManager* textureManager)
+ {
+ textureManager->prioritizeTextures();
+ textureManagerUpdateBackingsPriorities(textureManager);
+ }
+
+ void textureManagerUpdateBackingsPriorities(CCPrioritizedTextureManager* textureManager)
+ {
+ DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked;
+ textureManager->updateBackingsPriorities();
+ }
+
CCResourceProvider* resourceProvider()
{
return m_resourceProvider.get();
}
+ void textureManagerAssertInvariants(CCPrioritizedTextureManager* textureManager)
+ {
+#if !ASSERT_DISABLED
+ DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked;
+ textureManager->assertInvariants();
+#endif
+ }
+
+ bool textureBackingIsAbovePriorityCutoff(CCPrioritizedTexture* texture)
+ {
+ return texture->m_backing->wasAbovePriorityCutoffAtLastPriorityUpdate();
+ }
+
protected:
const IntSize m_textureSize;
const GC3Denum m_textureFormat;
@@ -95,6 +119,10 @@ protected:
OwnPtr<CCResourceProvider> m_resourceProvider;
};
+}
+
+namespace {
+
TEST_F(CCPrioritizedTextureTest, requestTextureExceedingMaxLimit)
{
const size_t maxTextures = 8;
@@ -111,7 +139,7 @@ TEST_F(CCPrioritizedTextureTest, requestTextureExceedingMaxLimit)
textures[i]->setRequestPriority(100 + i);
// Only lower half should be available.
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
EXPECT_TRUE(validateTexture(textures[0], false));
EXPECT_TRUE(validateTexture(textures[7], false));
EXPECT_FALSE(validateTexture(textures[8], false));
@@ -122,7 +150,7 @@ TEST_F(CCPrioritizedTextureTest, requestTextureExceedingMaxLimit)
textures[i]->setRequestPriority(100 - i);
// Only upper half should be available.
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
EXPECT_FALSE(validateTexture(textures[0], false));
EXPECT_FALSE(validateTexture(textures[7], false));
EXPECT_TRUE(validateTexture(textures[8], false));
@@ -148,7 +176,7 @@ TEST_F(CCPrioritizedTextureTest, changeMemoryLimits)
// Set max limit to 8 textures
textureManager->setMaxMemoryLimitBytes(texturesMemorySize(8));
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
for (size_t i = 0; i < maxTextures; ++i)
validateTexture(textures[i], false);
{
@@ -161,7 +189,7 @@ TEST_F(CCPrioritizedTextureTest, changeMemoryLimits)
// Set max limit to 5 textures
textureManager->setMaxMemoryLimitBytes(texturesMemorySize(5));
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
for (size_t i = 0; i < maxTextures; ++i)
EXPECT_EQ(validateTexture(textures[i], false), i < 5);
{
@@ -174,7 +202,7 @@ TEST_F(CCPrioritizedTextureTest, changeMemoryLimits)
// Set max limit to 4 textures
textureManager->setMaxMemoryLimitBytes(texturesMemorySize(4));
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
for (size_t i = 0; i < maxTextures; ++i)
EXPECT_EQ(validateTexture(textures[i], false), i < 4);
{
@@ -204,7 +232,7 @@ TEST_F(CCPrioritizedTextureTest, textureManagerPartialUpdateTextures)
for (size_t i = 0; i < numTextures; ++i)
textures[i]->setRequestPriority(200 + i);
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
// Allocate textures which are currently high priority.
EXPECT_TRUE(validateTexture(textures[0], false));
@@ -219,7 +247,7 @@ TEST_F(CCPrioritizedTextureTest, textureManagerPartialUpdateTextures)
for (size_t i = 0; i < numTextures; ++i)
moreTextures[i]->setRequestPriority(100 + i);
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
// Textures are now below cutoff.
EXPECT_FALSE(validateTexture(textures[0], false));
@@ -266,7 +294,7 @@ TEST_F(CCPrioritizedTextureTest, textureManagerPrioritiesAreEqual)
// Set max limit to 8 textures
textureManager->setMaxMemoryLimitBytes(texturesMemorySize(8));
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
// The two high priority textures should be available, others should not.
for (size_t i = 0; i < 2; ++i)
@@ -298,7 +326,7 @@ TEST_F(CCPrioritizedTextureTest, textureManagerDestroyedFirst)
EXPECT_FALSE(texture->haveBackingTexture());
texture->setRequestPriority(100);
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
EXPECT_TRUE(validateTexture(texture, false));
EXPECT_TRUE(texture->canAcquireBackingTexture());
@@ -324,7 +352,7 @@ TEST_F(CCPrioritizedTextureTest, textureMovedToNewManager)
EXPECT_FALSE(texture->haveBackingTexture());
texture->setRequestPriority(100);
- textureManagerOne->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManagerOne.get());
EXPECT_TRUE(validateTexture(texture, false));
EXPECT_TRUE(texture->canAcquireBackingTexture());
@@ -343,7 +371,7 @@ TEST_F(CCPrioritizedTextureTest, textureMovedToNewManager)
texture->setTextureManager(textureManagerTwo.get());
- textureManagerTwo->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManagerTwo.get());
EXPECT_TRUE(validateTexture(texture, false));
EXPECT_TRUE(texture->canAcquireBackingTexture());
@@ -374,7 +402,7 @@ TEST_F(CCPrioritizedTextureTest, renderSurfacesReduceMemoryAvailableOutsideRootS
textures[i]->setRequestPriority(100 + i);
// Only lower half should be available.
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
EXPECT_TRUE(validateTexture(textures[0], false));
EXPECT_TRUE(validateTexture(textures[3], false));
EXPECT_FALSE(validateTexture(textures[4], false));
@@ -385,7 +413,7 @@ TEST_F(CCPrioritizedTextureTest, renderSurfacesReduceMemoryAvailableOutsideRootS
textures[i]->setRequestPriority(100 - i);
// Only upper half should be available.
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
EXPECT_FALSE(validateTexture(textures[0], false));
EXPECT_FALSE(validateTexture(textures[3], false));
EXPECT_TRUE(validateTexture(textures[4], false));
@@ -420,7 +448,7 @@ TEST_F(CCPrioritizedTextureTest, renderSurfacesReduceMemoryAvailableForRequestLa
textures[i]->setRequestPriority(100);
// The first four to be requested late will be available.
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
for (unsigned i = 0; i < maxTextures; ++i)
EXPECT_FALSE(validateTexture(textures[i], false));
for (unsigned i = 0; i < maxTextures; i += 2)
@@ -458,7 +486,7 @@ TEST_F(CCPrioritizedTextureTest, whenRenderSurfaceNotAvailableTexturesAlsoNotAva
for (size_t i = 6; i < 8; ++i)
textures[i]->setRequestPriority(CCPriorityCalculator::visiblePriority(false));
- textureManager->prioritizeTextures();
+ prioritizeTexturesAndBackings(textureManager.get());
// Unable to requestLate textures in the child surface.
EXPECT_FALSE(validateTexture(textures[6], true));
@@ -476,4 +504,53 @@ TEST_F(CCPrioritizedTextureTest, whenRenderSurfaceNotAvailableTexturesAlsoNotAva
textureManager->clearAllMemory(resourceProvider());
}
+TEST_F(CCPrioritizedTextureTest, requestLateBackingsSorting)
+{
+ const size_t maxTextures = 8;
+ OwnPtr<CCPrioritizedTextureManager> textureManager = createManager(maxTextures);
+ textureManager->setMaxMemoryLimitBytes(texturesMemorySize(maxTextures));
+
+ // Create textures to fill our memory limit.
+ OwnPtr<CCPrioritizedTexture> textures[maxTextures];
+ for (size_t i = 0; i < maxTextures; ++i)
+ textures[i] = textureManager->createTexture(m_textureSize, m_textureFormat);
+
+ // Set equal priorities, and allocate backings for all textures.
+ for (size_t i = 0; i < maxTextures; ++i)
+ textures[i]->setRequestPriority(100);
+ prioritizeTexturesAndBackings(textureManager.get());
+ for (unsigned i = 0; i < maxTextures; ++i)
+ EXPECT_TRUE(validateTexture(textures[i], false));
+
+ // Drop the memory limit and prioritize (none will be above the threshold,
+ // but they still have backings because reduceMemory hasn't been called).
+ textureManager->setMaxMemoryLimitBytes(texturesMemorySize(maxTextures / 2));
+ prioritizeTexturesAndBackings(textureManager.get());
+
+ // Push half of them back over the limit.
+ for (size_t i = 0; i < maxTextures; i += 2)
+ EXPECT_TRUE(textures[i]->requestLate());
+
+ // Push the priorities to the backings array and sort the backings array
+ textureManagerUpdateBackingsPriorities(textureManager.get());
+
+ // Assert that the backings list be sorted with the below-limit backings
+ // before the above-limit backings.
+ textureManagerAssertInvariants(textureManager.get());
+
+ // Make sure that we have backings for all of the textures.
+ for (size_t i = 0; i < maxTextures; ++i)
+ EXPECT_TRUE(textures[i]->haveBackingTexture());
+
+ // Make sure that only the requestLate textures are above the priority cutoff
+ for (size_t i = 0; i < maxTextures; i += 2)
+ EXPECT_TRUE(textureBackingIsAbovePriorityCutoff(textures[i].get()));
+ for (size_t i = 1; i < maxTextures; i += 2)
+ EXPECT_FALSE(textureBackingIsAbovePriorityCutoff(textures[i].get()));
+
+ DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked;
+ textureManager->clearAllMemory(resourceProvider());
+}
+
+
} // namespace
diff --git a/Source/WebKit/chromium/tests/IDBAbortOnCorruptTest.cpp b/Source/WebKit/chromium/tests/IDBAbortOnCorruptTest.cpp
index 1d395096a..b080bfc4d 100644
--- a/Source/WebKit/chromium/tests/IDBAbortOnCorruptTest.cpp
+++ b/Source/WebKit/chromium/tests/IDBAbortOnCorruptTest.cpp
@@ -26,6 +26,7 @@
#include "config.h"
#include "IDBCursorBackendInterface.h"
#include "IDBDatabaseBackendInterface.h"
+#include "IDBDatabaseCallbacks.h"
#include "IDBFactoryBackendImpl.h"
#include "IDBFakeBackingStore.h"
#include "SecurityOrigin.h"
@@ -96,14 +97,26 @@ protected:
}
};
+class FakeIDBDatabaseCallbacks : public IDBDatabaseCallbacks {
+public:
+ static PassRefPtr<FakeIDBDatabaseCallbacks> create() { return adoptRef(new FakeIDBDatabaseCallbacks()); }
+ virtual ~FakeIDBDatabaseCallbacks() { }
+ virtual void onVersionChange(const String& version) OVERRIDE { }
+ virtual void onVersionChange(int64_t oldVersion, int64_t newVersion) OVERRIDE { }
+ virtual void onForcedClose() OVERRIDE { }
+private:
+ FakeIDBDatabaseCallbacks() { }
+};
+
TEST(IDBAbortTest, TheTest)
{
RefPtr<IDBFactoryBackendImpl> factory = FailingIDBFactoryBackendImpl::create();
const String& name = "db name";
MockIDBCallbacks callbacks;
+ RefPtr<FakeIDBDatabaseCallbacks> databaseCallbacks = FakeIDBDatabaseCallbacks::create();
RefPtr<SecurityOrigin> origin = SecurityOrigin::create("http", "localhost", 81);
const int64_t DummyVersion = 2;
- factory->open(name, DummyVersion, &callbacks, origin, 0 /*Frame*/, String() /*path*/);
+ factory->open(name, DummyVersion, &callbacks, databaseCallbacks, origin, 0 /*Frame*/, String() /*path*/);
}
} // namespace
diff --git a/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp b/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
index 1fa2c262d..cb94243d0 100644
--- a/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
+++ b/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
@@ -27,6 +27,7 @@
#include "IDBBackingStore.h"
#include "IDBCursorBackendInterface.h"
#include "IDBDatabaseBackendImpl.h"
+#include "IDBDatabaseCallbacksProxy.h"
#include "IDBFactoryBackendImpl.h"
#include "IDBFakeBackingStore.h"
#include "IDBIndexBackendImpl.h"
@@ -40,9 +41,10 @@
#if ENABLE(INDEXED_DATABASE)
using namespace WebCore;
+using WebKit::IDBDatabaseCallbacksProxy;
using WebKit::WebIDBDatabase;
-using WebKit::WebIDBDatabaseCallbacksImpl;
using WebKit::WebIDBDatabaseImpl;
+using WebKit::WebIDBDatabaseCallbacksImpl;
namespace {
@@ -122,20 +124,16 @@ TEST(IDBDatabaseBackendTest, ConnectionLifecycle)
EXPECT_GT(backingStore->refCount(), 1);
RefPtr<MockIDBCallbacks> request1 = MockIDBCallbacks::create();
- db->openConnection(request1);
-
RefPtr<FakeIDBDatabaseCallbacks> connection1 = FakeIDBDatabaseCallbacks::create();
- db->registerFrontendCallbacks(connection1);
+ db->openConnection(request1, connection1);
RefPtr<MockIDBCallbacks> request2 = MockIDBCallbacks::create();
- db->openConnection(request2);
+ RefPtr<FakeIDBDatabaseCallbacks> connection2 = FakeIDBDatabaseCallbacks::create();
+ db->openConnection(request2, connection2);
db->close(connection1);
EXPECT_GT(backingStore->refCount(), 1);
- RefPtr<FakeIDBDatabaseCallbacks> connection2 = FakeIDBDatabaseCallbacks::create();
- db->registerFrontendCallbacks(connection2);
-
db->close(connection2);
EXPECT_TRUE(backingStore->hasOneRef());
}
@@ -149,7 +147,7 @@ public:
~MockIDBDatabaseBackendProxy()
{
- EXPECT_TRUE(m_wasRegisterFrontendCallbacksCalled);
+ EXPECT_TRUE(m_wasCloseCalled);
}
virtual IDBDatabaseMetadata metadata() const { return IDBDatabaseMetadata(); }
@@ -163,19 +161,12 @@ public:
m_wasCloseCalled = true;
m_webDatabase.close();
}
- virtual void registerFrontendCallbacks(PassRefPtr<IDBDatabaseCallbacks> connection)
- {
- m_wasRegisterFrontendCallbacksCalled = true;
- m_webDatabase.open(new WebIDBDatabaseCallbacksImpl(connection));
- }
private:
MockIDBDatabaseBackendProxy(WebIDBDatabaseImpl& webDatabase)
- : m_wasRegisterFrontendCallbacksCalled(false)
- , m_wasCloseCalled(false)
+ : m_wasCloseCalled(false)
, m_webDatabase(webDatabase) { }
- bool m_wasRegisterFrontendCallbacksCalled;
bool m_wasCloseCalled;
WebIDBDatabaseImpl& m_webDatabase;
@@ -191,18 +182,19 @@ TEST(IDBDatabaseBackendTest, ForcedClose)
RefPtr<IDBDatabaseBackendImpl> backend = IDBDatabaseBackendImpl::create("db", backingStore.get(), coordinator, factory, "uniqueid");
EXPECT_GT(backingStore->refCount(), 1);
- WebIDBDatabaseImpl webDatabase(backend);
-
- RefPtr<MockIDBCallbacks> request1 = MockIDBCallbacks::create();
- backend->openConnection(request1);
+ RefPtr<FakeIDBDatabaseCallbacks> connection = FakeIDBDatabaseCallbacks::create();
+ RefPtr<IDBDatabaseCallbacksProxy> connectionProxy = IDBDatabaseCallbacksProxy::create(adoptPtr(new WebIDBDatabaseCallbacksImpl(connection)));
+ WebIDBDatabaseImpl webDatabase(backend, connectionProxy);
RefPtr<MockIDBDatabaseBackendProxy> proxy = MockIDBDatabaseBackendProxy::create(webDatabase);
+ RefPtr<MockIDBCallbacks> request = MockIDBCallbacks::create();
+ backend->openConnection(request, connectionProxy);
ScriptExecutionContext* context = 0;
- RefPtr<IDBDatabase> idbDatabase = IDBDatabase::create(context, proxy);
- idbDatabase->registerFrontendCallbacks();
+ RefPtr<IDBDatabase> idbDatabase = IDBDatabase::create(context, proxy, connection);
webDatabase.forceClose();
+
EXPECT_TRUE(backingStore->hasOneRef());
}
diff --git a/Source/WebKit/chromium/tests/IDBFakeBackingStore.h b/Source/WebKit/chromium/tests/IDBFakeBackingStore.h
index 8862b58d4..e0a5a8fa5 100644
--- a/Source/WebKit/chromium/tests/IDBFakeBackingStore.h
+++ b/Source/WebKit/chromium/tests/IDBFakeBackingStore.h
@@ -63,6 +63,7 @@ public:
virtual PassRefPtr<IDBKey> getPrimaryKeyViaIndex(int64_t databaseId, int64_t objectStoreId, int64_t indexId, const IDBKey&) OVERRIDE { return PassRefPtr<IDBKey>(); }
virtual bool keyExistsInIndex(int64_t databaseid, int64_t objectStoreId, int64_t indexId, const IDBKey& indexKey, RefPtr<IDBKey>& foundPrimaryKey) OVERRIDE { return false; }
+ virtual PassRefPtr<Cursor> openObjectStoreKeyCursor(int64_t databaseId, int64_t objectStoreId, const IDBKeyRange*, IDBCursor::Direction) OVERRIDE { return PassRefPtr<Cursor>(); }
virtual PassRefPtr<Cursor> openObjectStoreCursor(int64_t databaseId, int64_t objectStoreId, const IDBKeyRange*, IDBCursor::Direction) OVERRIDE { return PassRefPtr<Cursor>(); }
virtual PassRefPtr<Cursor> openIndexKeyCursor(int64_t databaseId, int64_t objectStoreId, int64_t indexId, const IDBKeyRange*, IDBCursor::Direction) OVERRIDE { return PassRefPtr<Cursor>(); }
virtual PassRefPtr<Cursor> openIndexCursor(int64_t databaseId, int64_t objectStoreId, int64_t indexId, const IDBKeyRange*, IDBCursor::Direction) OVERRIDE { return PassRefPtr<Cursor>(); }
diff --git a/Source/WebKit/chromium/tests/LocaleMacTest.cpp b/Source/WebKit/chromium/tests/LocaleMacTest.cpp
index eb86a2f68..afcd0b889 100644
--- a/Source/WebKit/chromium/tests/LocaleMacTest.cpp
+++ b/Source/WebKit/chromium/tests/LocaleMacTest.cpp
@@ -101,16 +101,16 @@ protected:
#endif
#if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS)
- String timeFormatText(const String& localeString)
+ String timeFormat(const String& localeString)
{
OwnPtr<LocaleMac> locale = LocaleMac::create(localeString);
- return locale->timeFormatText();
+ return locale->timeFormat();
}
- String shortTimeFormatText(const String& localeString)
+ String shortTimeFormat(const String& localeString)
{
OwnPtr<LocaleMac> locale = LocaleMac::create(localeString);
- return locale->shortTimeFormatText();
+ return locale->shortTimeFormat();
}
String timeAMPMLabel(const String& localeString, unsigned index)
@@ -188,18 +188,18 @@ TEST_F(LocaleMacTest, weekDayShortLabels)
#endif
#if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS)
-TEST_F(LocaleMacTest, timeFormatText)
+TEST_F(LocaleMacTest, timeFormat)
{
- EXPECT_STREQ("h:mm:ss a", timeFormatText("en_US").utf8().data());
- EXPECT_STREQ("HH:mm:ss", timeFormatText("fr_FR").utf8().data());
- EXPECT_STREQ("H:mm:ss", timeFormatText("ja_JP").utf8().data());
+ EXPECT_STREQ("h:mm:ss a", timeFormat("en_US").utf8().data());
+ EXPECT_STREQ("HH:mm:ss", timeFormat("fr_FR").utf8().data());
+ EXPECT_STREQ("H:mm:ss", timeFormat("ja_JP").utf8().data());
}
-TEST_F(LocaleMacTest, shortTimeFormatText)
+TEST_F(LocaleMacTest, shortTimeFormat)
{
- EXPECT_STREQ("h:mm a", shortTimeFormatText("en_US").utf8().data());
- EXPECT_STREQ("HH:mm", shortTimeFormatText("fr_FR").utf8().data());
- EXPECT_STREQ("H:mm", shortTimeFormatText("ja_JP").utf8().data());
+ EXPECT_STREQ("h:mm a", shortTimeFormat("en_US").utf8().data());
+ EXPECT_STREQ("HH:mm", shortTimeFormat("fr_FR").utf8().data());
+ EXPECT_STREQ("H:mm", shortTimeFormat("ja_JP").utf8().data());
}
TEST_F(LocaleMacTest, timeAMPMLabels)
@@ -221,6 +221,12 @@ TEST_F(LocaleMacTest, decimalSeparator)
}
#endif
+TEST_F(LocaleMacTest, invalidLocale)
+{
+ EXPECT_STREQ(monthLabel("en_US", January).utf8().data(), monthLabel("foo", January).utf8().data());
+ EXPECT_STREQ(decimalSeparator("en_US").utf8().data(), decimalSeparator("foo").utf8().data());
+}
+
static void testNumberIsReversible(const AtomicString& localeString, const char* original, const char* shouldHave = 0)
{
OwnPtr<Localizer> locale = Localizer::create(localeString);
diff --git a/Source/WebKit/chromium/tests/LocaleWinTest.cpp b/Source/WebKit/chromium/tests/LocaleWinTest.cpp
index 32aaa53d7..a3719f0d3 100644
--- a/Source/WebKit/chromium/tests/LocaleWinTest.cpp
+++ b/Source/WebKit/chromium/tests/LocaleWinTest.cpp
@@ -123,16 +123,16 @@ protected:
#endif
#if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS)
- String timeFormatText(LCID lcid)
+ String timeFormat(LCID lcid)
{
OwnPtr<LocaleWin> locale = LocaleWin::create(lcid);
- return locale->timeFormatText();
+ return locale->timeFormat();
}
- String shortTimeFormatText(LCID lcid)
+ String shortTimeFormat(LCID lcid)
{
OwnPtr<LocaleWin> locale = LocaleWin::create(lcid);
- return locale->shortTimeFormatText();
+ return locale->shortTimeFormat();
}
String timeAMPMLabel(LCID lcid, unsigned index)
@@ -325,18 +325,18 @@ TEST_F(LocaleWinTest, weekDayShortLabels)
#endif
#if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS)
-TEST_F(LocaleWinTest, timeFormatText)
+TEST_F(LocaleWinTest, timeFormat)
{
- EXPECT_STREQ("h:mm:ss a", timeFormatText(EnglishUS).utf8().data());
- EXPECT_STREQ("HH:mm:ss", timeFormatText(FrenchFR).utf8().data());
- EXPECT_STREQ("H:mm:ss", timeFormatText(JapaneseJP).utf8().data());
+ EXPECT_STREQ("h:mm:ss a", timeFormat(EnglishUS).utf8().data());
+ EXPECT_STREQ("HH:mm:ss", timeFormat(FrenchFR).utf8().data());
+ EXPECT_STREQ("H:mm:ss", timeFormat(JapaneseJP).utf8().data());
}
-TEST_F(LocaleWinTest, shortTimeFormatText)
+TEST_F(LocaleWinTest, shortTimeFormat)
{
- EXPECT_STREQ("h:mm:ss a", shortTimeFormatText(EnglishUS).utf8().data());
- EXPECT_STREQ("HH:mm:ss", shortTimeFormatText(FrenchFR).utf8().data());
- EXPECT_STREQ("H:mm:ss", shortTimeFormatText(JapaneseJP).utf8().data());
+ EXPECT_STREQ("h:mm:ss a", shortTimeFormat(EnglishUS).utf8().data());
+ EXPECT_STREQ("HH:mm:ss", shortTimeFormat(FrenchFR).utf8().data());
+ EXPECT_STREQ("H:mm:ss", shortTimeFormat(JapaneseJP).utf8().data());
}
TEST_F(LocaleWinTest, timeAMPMLabels)
diff --git a/Source/WebKit/chromium/tests/LocalizedDateICUTest.cpp b/Source/WebKit/chromium/tests/LocalizedDateICUTest.cpp
index ea725a9f7..749f91038 100644
--- a/Source/WebKit/chromium/tests/LocalizedDateICUTest.cpp
+++ b/Source/WebKit/chromium/tests/LocalizedDateICUTest.cpp
@@ -91,13 +91,13 @@ protected:
String localizedDateFormatText(const char* localeString)
{
OwnPtr<LocaleICU> locale = LocaleICU::create(localeString);
- return locale->localizedTimeFormatText();
+ return locale->timeFormat();
}
String localizedShortDateFormatText(const char* localeString)
{
OwnPtr<LocaleICU> locale = LocaleICU::create(localeString);
- return locale->localizedShortTimeFormatText();
+ return locale->shortTimeFormat();
}
Labels timeAMPMLabels(const char* localeString)
diff --git a/Source/WebKit/chromium/tests/LocalizedNumberICUTest.cpp b/Source/WebKit/chromium/tests/LocalizedNumberICUTest.cpp
index 9f89ce7a1..ec7de4e9e 100644
--- a/Source/WebKit/chromium/tests/LocalizedNumberICUTest.cpp
+++ b/Source/WebKit/chromium/tests/LocalizedNumberICUTest.cpp
@@ -36,13 +36,13 @@
using namespace WebCore;
-void testNumberIsReversible(const char* localeString, const char* original, const char* shouldHave = 0)
+void testNumberIsReversible(const AtomicString& locale, const char* original, const char* shouldHave = 0)
{
- OwnPtr<LocaleICU> locale = LocaleICU::create(localeString);
- String localized = locale->convertToLocalizedNumber(original);
+ OwnPtr<Localizer> localizer = Localizer::create(locale);
+ String localized = localizer->convertToLocalizedNumber(original);
if (shouldHave)
EXPECT_TRUE(localized.contains(shouldHave));
- String converted = locale->convertFromLocalizedNumber(localized);
+ String converted = localizer->convertFromLocalizedNumber(localized);
EXPECT_EQ(original, converted);
}
@@ -82,10 +82,10 @@ TEST(LocalizedNumberICUTest, Reversible)
#if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS)
-static String testDecimalSeparator(const char* localeString)
+static String testDecimalSeparator(const AtomicString& locale)
{
- OwnPtr<LocaleICU> locale = LocaleICU::create(localeString);
- return locale->localizedDecimalSeparator();
+ OwnPtr<Localizer> localizer = Localizer::create(locale);
+ return localizer->localizedDecimalSeparator();
}
TEST(LocalizedNumberICUTest, localizedDecimalSeparator)
diff --git a/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp b/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp
index 51b200ade..4a0a3cf81 100644
--- a/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp
+++ b/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp
@@ -40,6 +40,7 @@
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
#include <wtf/text/AtomicString.h>
+#include <wtf/text/CString.h>
#include <wtf/text/StringImpl.h>
#include <wtf/text/WTFString.h>
@@ -179,7 +180,7 @@ public:
void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
{
- MemoryClassInfo info(memoryObjectInfo, this, GenericMemoryTypes::Undefined);
+ MemoryClassInfo info(memoryObjectInfo, this);
}
int m_data;
};
@@ -228,26 +229,50 @@ TEST(MemoryInstrumentationTest, visitFirstMemberInNonVirtualClass)
EXPECT_EQ(2, visitedObjects.size());
}
-class StringOwnerInstrumented {
+template<typename T>
+class InstrumentedOwner {
public:
- StringOwnerInstrumented() : m_name("string") { }
+ template<typename V>
+ InstrumentedOwner(const V& value) : m_value(value) { }
void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
{
MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
- info.addInstrumentedMember(m_name);
+ info.addInstrumentedMember(m_value);
}
- String m_name;
+ T m_value;
};
TEST(MemoryInstrumentationTest, visitStrings)
{
- VisitedObjects visitedObjects;
- MemoryInstrumentationImpl impl(visitedObjects);
- StringOwnerInstrumented stringOwnerInstrumented;
- impl.addRootObject(stringOwnerInstrumented);
- EXPECT_EQ(stringOwnerInstrumented.m_name.impl()->sizeInBytes(), impl.reportedSizeForAllTypes());
- EXPECT_EQ(2, visitedObjects.size());
+ {
+ VisitedObjects visitedObjects;
+ MemoryInstrumentationImpl impl(visitedObjects);
+ InstrumentedOwner<String> stringInstrumentedOwner("String");
+ stringInstrumentedOwner.m_value.characters(); // Force 16bit shadow creation.
+ impl.addRootObject(stringInstrumentedOwner);
+ EXPECT_EQ(sizeof(StringImpl) + stringInstrumentedOwner.m_value.length() * 2, impl.reportedSizeForAllTypes());
+ EXPECT_EQ(2, visitedObjects.size());
+ }
+
+ {
+ VisitedObjects visitedObjects;
+ MemoryInstrumentationImpl impl(visitedObjects);
+ InstrumentedOwner<AtomicString> atomicStringInstrumentedOwner("AtomicString");
+ atomicStringInstrumentedOwner.m_value.string().characters(); // Force 16bit shadow creation.
+ impl.addRootObject(atomicStringInstrumentedOwner);
+ EXPECT_EQ(sizeof(StringImpl) + atomicStringInstrumentedOwner.m_value.length() * 2, impl.reportedSizeForAllTypes());
+ EXPECT_EQ(2, visitedObjects.size());
+ }
+
+ {
+ VisitedObjects visitedObjects;
+ MemoryInstrumentationImpl impl(visitedObjects);
+ InstrumentedOwner<CString> cStringInstrumentedOwner("CString");
+ impl.addRootObject(cStringInstrumentedOwner);
+ EXPECT_EQ(sizeof(WTF::CStringBuffer) + cStringInstrumentedOwner.m_value.length(), impl.reportedSizeForAllTypes());
+ EXPECT_EQ(1, visitedObjects.size());
+ }
}
} // namespace
diff --git a/Source/WebKit/chromium/tests/PlatformGestureCurveTest.cpp b/Source/WebKit/chromium/tests/PlatformGestureCurveTest.cpp
index 9bda21764..0e83a84e1 100644
--- a/Source/WebKit/chromium/tests/PlatformGestureCurveTest.cpp
+++ b/Source/WebKit/chromium/tests/PlatformGestureCurveTest.cpp
@@ -99,13 +99,15 @@ TEST(PlatformGestureCurve, flingCurveTouch)
{
double initialVelocity = 5000;
MockPlatformGestureCurveTarget target;
- OwnPtr<ActivePlatformGestureAnimation> animation = ActivePlatformGestureAnimation::create(TouchFlingPlatformGestureCurve::createForTouchPad(FloatPoint(initialVelocity, 0)), &target);
+ // Explicitly parametrized to make test non-brittle in face of
+ // parameter changes.
+ OwnPtr<ActivePlatformGestureAnimation> animation = ActivePlatformGestureAnimation::create(TouchFlingPlatformGestureCurve::create(FloatPoint(initialVelocity, 0), -5.70762e+03f, 1.72e+02f, 3.7e+00f, 1.3f), &target);
- // Note: the expectations below are dependent on the value of sigma hard-coded in the curve parameters.
- // If the parameters change, then the tests values/expectations will need to be updated.
+ // Note: the expectations below are dependent on the curve parameters hard
+ // coded into the create call above.
EXPECT_TRUE(animation->animate(0));
EXPECT_TRUE(animation->animate(0.25));
- EXPECT_TRUE(animation->animate(0.45)); // Use non-uniform tick spacing.
+ EXPECT_TRUE(animation->animate(0.45f)); // Use non-uniform tick spacing.
EXPECT_TRUE(animation->animate(1));
EXPECT_FALSE(animation->animate(1.5));
EXPECT_NEAR(target.cumulativeDelta().x(), 1193, 1);
diff --git a/Source/WebKit/efl/ChangeLog b/Source/WebKit/efl/ChangeLog
index cfac6ce12..5dee3176c 100644
--- a/Source/WebKit/efl/ChangeLog
+++ b/Source/WebKit/efl/ChangeLog
@@ -1,3 +1,209 @@
+2012-09-13 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ Evas_Object* is a ref'ed structure, so tread it as such
+ https://bugs.webkit.org/show_bug.cgi?id=96659
+
+ Reviewed by Adam Barth.
+
+ Replace OwnPtr<Evas_Object> with RefPtr.
+
+ * tests/UnitTestUtils/EWKTestView.cpp:
+ (EWKUnitTests::EWKTestView::init):
+ * tests/UnitTestUtils/EWKTestView.h:
+ (EWKTestView):
+
+2012-09-14 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Unreviewed, rolling out r128507.
+ http://trac.webkit.org/changeset/128507
+ https://bugs.webkit.org/show_bug.cgi?id=96659
+
+ Revert. r128507 makes too many crashes in EFL layout test bots.
+
+ * tests/UnitTestUtils/EWKTestView.cpp:
+ (EWKUnitTests::EWKTestView::init):
+ * tests/UnitTestUtils/EWKTestView.h:
+ (EWKTestView):
+
+2012-09-13 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] Remove a lot of C'ism from Ewk_Tiled_Matrix
+ https://bugs.webkit.org/show_bug.cgi?id=96638
+
+ Reviewed by Gyuyoung Kim.
+
+ Remove a lot of C'ism from Ewk_Tiled_Matrix and
+ fix the code so that it follows coding style.
+
+ * ewk/ewk_tiled_matrix.cpp:
+ (_Ewk_Tile_Matrix):
+ (ewk_tile_matrix_entry_get):
+ (_ewk_tile_matrix_cell_free):
+ (_ewk_tile_matrix_tile_free):
+ (ewk_tile_matrix_zoom_level_set):
+ (ewk_tile_matrix_entry_new):
+ (ewk_tile_matrix_invalidate):
+ (ewk_tile_matrix_free):
+ (ewk_tile_matrix_resize):
+ (ewk_tile_matrix_size_get):
+ (ewk_tile_matrix_unused_cache_get):
+ (ewk_tile_matrix_tile_exact_get):
+ (ewk_tile_matrix_tile_exact_exists):
+ (ewk_tile_matrix_tile_new):
+ (ewk_tile_matrix_tile_put):
+ (ewk_tile_matrix_tile_updates_clear):
+ (_ewk_tile_matrix_slicer_setup):
+ (ewk_tile_matrix_update):
+ (ewk_tile_matrix_updates_process):
+ (ewk_tile_matrix_updates_clear):
+ (ewk_tile_matrix_dbg):
+ (ewk_tile_matrix_freeze):
+ (ewk_tile_matrix_thaw):
+ * ewk/ewk_tiled_matrix_private.h:
+
+2012-09-13 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ Evas_Object* is a ref'ed structure, so tread it as such
+ https://bugs.webkit.org/show_bug.cgi?id=96659
+
+ Reviewed by Adam Barth.
+
+ Replace OwnPtr<Evas_Object> with RefPtr.
+
+ * tests/UnitTestUtils/EWKTestView.cpp:
+ (EWKUnitTests::EWKTestView::init):
+ * tests/UnitTestUtils/EWKTestView.h:
+ (EWKTestView):
+
+2012-09-13 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] Remove a lot of C'ism from Ewk_Tiled_Backing_Store
+ https://bugs.webkit.org/show_bug.cgi?id=96631
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Remove a lot of C'ism from Ewk_Tiled_Backing_Store and
+ fix coding style.
+
+ * ewk/ewk_tiled_backing_store.cpp:
+ (_Ewk_Tiled_Backing_Store_Item):
+ (_Ewk_Tiled_Backing_Store_Data):
+ (_ewk_tiled_backing_store_updates_process):
+ (_ewk_tiled_backing_store_flush):
+ (_ewk_tiled_backing_store_tile_new):
+ (_ewk_tiled_backing_store_item_resize):
+ (_ewk_tiled_backing_store_tile_associate):
+ (_ewk_tiled_backing_store_tile_dissociate):
+ (_ewk_tiled_backing_store_tile_dissociate_all):
+ (_ewk_tiled_backing_store_pre_render_request_add):
+ (_ewk_tiled_backing_store_pre_render_request_del):
+ (_ewk_tiled_backing_store_pre_render_request_first):
+ (_ewk_tiled_backing_store_pre_render_request_clear):
+ (_ewk_tiled_backing_store_pre_render_request_process_single):
+ (_ewk_tiled_backing_store_item_process_idler_start):
+ (_ewk_tiled_backing_store_disable_render):
+ (_ewk_tiled_backing_store_enable_render):
+ (_ewk_tiled_backing_store_item_fill):
+ (_ewk_tiled_backing_store_item_add):
+ (_ewk_tiled_backing_store_item_smooth_scale_set):
+ (_ewk_tiled_backing_store_changed):
+ (_ewk_tiled_backing_store_view_cols_end_del):
+ (_ewk_tiled_backing_store_view_cols_end_add):
+ (_ewk_tiled_backing_store_view_row_del):
+ (_ewk_tiled_backing_store_view_rows_range_del):
+ (_ewk_tiled_backing_store_view_rows_all_del):
+ (_ewk_tiled_backing_store_smart_member_del):
+ (_ewk_tiled_backing_store_smart_member_add):
+ (_ewk_tiled_backing_store_mem_dbg):
+ (_ewk_tiled_backing_store_sig_usr):
+ (_ewk_tiled_backing_store_smart_add):
+ (_ewk_tiled_backing_store_smart_del):
+ (_ewk_tiled_backing_store_smart_show):
+ (_ewk_tiled_backing_store_smart_hide):
+ (_ewk_tiled_backing_store_recalc_renderers):
+ (_ewk_tiled_backing_store_smart_calculate_size):
+ (_ewk_tiled_backing_store_view_dbg):
+ (_ewk_tiled_backing_store_view_wrap_up):
+ (_ewk_tiled_backing_store_view_wrap_down):
+ (_ewk_tiled_backing_store_view_wrap_left):
+ (_ewk_tiled_backing_store_view_wrap_right):
+ (_ewk_tiled_backing_store_view_refill):
+ (_ewk_tiled_backing_store_view_pos_apply):
+ (_ewk_tiled_backing_store_smart_calculate_offset_force):
+ (_ewk_tiled_backing_store_smart_calculate_offset):
+ (_ewk_tiled_backing_store_smart_calculate_pos):
+ (_ewk_tiled_backing_store_fill_renderers):
+ (_ewk_tiled_backing_store_smart_calculate):
+ (ewk_tiled_backing_store_render_cb_set):
+ (ewk_tiled_backing_store_tile_unused_cache_get):
+ (_ewk_tiled_backing_store_scroll_full_offset_set_internal):
+ (ewk_tiled_backing_store_scroll_full_offset_set):
+ (ewk_tiled_backing_store_scroll_full_offset_add):
+ (_ewk_tiled_backing_store_zoom_set_internal):
+ (ewk_tiled_backing_store_zoom_set):
+ (ewk_tiled_backing_store_zoom_weak_set):
+ (ewk_tiled_backing_store_fix_offsets):
+ (ewk_tiled_backing_store_zoom_weak_smooth_scale_set):
+ (ewk_tiled_backing_store_alpha_set):
+ (ewk_tiled_backing_store_update):
+ (ewk_tiled_backing_store_updates_process_pre_set):
+ (ewk_tiled_backing_store_updates_process_post_set):
+ (ewk_tiled_backing_store_disabled_update_set):
+ (ewk_tiled_backing_store_flush):
+ (ewk_tiled_backing_store_pre_render_tile_add):
+ (ewk_tiled_backing_store_pre_render_spiral_queue):
+ (ewk_tiled_backing_store_pre_render_region):
+ (ewk_tiled_backing_store_pre_render_relative_radius):
+ (ewk_tiled_backing_store_pre_render_cancel):
+ (ewk_tiled_backing_store_disable_render):
+ (ewk_tiled_backing_store_enable_render):
+ * ewk/ewk_tiled_backing_store_private.h:
+ (_Ewk_Tile_Stats):
+ (_Ewk_Tile):
+ * ewk/ewk_view_tiled.cpp:
+ (_ewk_view_tiled_render_cb):
+ (_ewk_view_tiled_smart_backing_store_add):
+
+2012-09-13 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ [EFL][DRT] Implement LayoutTestController::layerTreeAsText
+ https://bugs.webkit.org/show_bug.cgi?id=82294
+
+ Reviewed by Gyuyoung Kim.
+
+ Add a support method for getting layerTreeAsText.
+
+ * WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
+ (DumpRenderTreeSupportEfl::layerTreeAsText):
+ * WebCoreSupport/DumpRenderTreeSupportEfl.h:
+
+2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r127876.
+ http://trac.webkit.org/changeset/127876
+ https://bugs.webkit.org/show_bug.cgi?id=96600
+
+ mouse click doesn't work for spin button if spin button in
+ iframe (Requested by yosin on #webkit).
+
+ * ewk/ewk_frame.cpp:
+ (ewk_frame_hit_test_new):
+
+2012-09-12 KyungTae Kim <ktf.kim@samsung.com>
+
+ [EFL] Support download attribute feature
+ https://bugs.webkit.org/show_bug.cgi?id=96462
+
+ Reviewed by Gyuyoung Kim.
+
+ Add suggested_name field on _Ewk_Download and set it on startDownload
+ to get suggested name passed as a download attribute.
+
+ * WebCoreSupport/FrameLoaderClientEfl.cpp:
+ (WebCore::FrameLoaderClientEfl::download):
+ (WebCore::FrameLoaderClientEfl::startDownload):
+ * ewk/ewk_view.h:
+
2012-09-10 Christophe Dumez <christophe.dumez@intel.com>
[EFL] Create a toggle button for closed captions
diff --git a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp
index 020502327..33bb088c6 100644
--- a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp
+++ b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp
@@ -104,6 +104,13 @@ void DumpRenderTreeSupportEfl::clearOpener(Evas_Object* ewkFrame)
frame->loader()->setOpener(0);
}
+String DumpRenderTreeSupportEfl::layerTreeAsText(const Evas_Object* ewkFrame)
+{
+ DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, String());
+
+ return frame->layerTreeAsText();
+}
+
bool DumpRenderTreeSupportEfl::elementDoesAutoCompleteForElementWithId(const Evas_Object* ewkFrame, const String& elementId)
{
DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, false);
diff --git a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h
index 6be5fb41d..e3f208409 100644
--- a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h
+++ b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h
@@ -64,6 +64,7 @@ public:
static String responseMimeType(const Evas_Object* ewkFrame);
static WebCore::IntRect selectionRectangle(const Evas_Object* ewkFrame);
static String suitableDRTFrameName(const Evas_Object* ewkFrame);
+ static String layerTreeAsText(const Evas_Object* ewkFrame);
static void setValueForUser(JSContextRef, JSValueRef nodeObject, const String& value);
static void setAutofilled(JSContextRef, JSValueRef nodeObject, bool autofilled);
static void setDefersLoading(Evas_Object* ewkView, bool defers);
diff --git a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp
index 92aef626f..168171201 100644
--- a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp
+++ b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp
@@ -872,6 +872,7 @@ void FrameLoaderClientEfl::download(ResourceHandle*, const ResourceRequest& requ
Ewk_Download download;
download.url = url.data();
+ download.suggested_name = 0;
ewk_view_download_request(m_view, &download);
}
@@ -949,15 +950,17 @@ void FrameLoaderClientEfl::setMainDocumentError(DocumentLoader* loader, const Re
m_hasSentResponseToPlugin = false;
}
-void FrameLoaderClientEfl::startDownload(const ResourceRequest& request, const String& /* suggestedName */)
+void FrameLoaderClientEfl::startDownload(const ResourceRequest& request, const String& suggestedName)
{
if (!m_view)
return;
CString url = request.url().string().utf8();
+ CString suggestedNameString = suggestedName.utf8();
Ewk_Download download;
download.url = url.data();
+ download.suggested_name = suggestedNameString.data();
ewk_view_download_request(m_view, &download);
}
diff --git a/Source/WebKit/efl/ewk/ewk_frame.cpp b/Source/WebKit/efl/ewk/ewk_frame.cpp
index 45259b0a2..0af5d2433 100644
--- a/Source/WebKit/efl/ewk/ewk_frame.cpp
+++ b/Source/WebKit/efl/ewk/ewk_frame.cpp
@@ -38,7 +38,6 @@
#include "HTMLNames.h"
#include "HTMLPlugInElement.h"
#include "HistoryItem.h"
-#include "HitTestRequest.h"
#include "HitTestResult.h"
#include "IntSize.h"
#include "KURL.h"
@@ -694,8 +693,8 @@ Ewk_Hit_Test* ewk_frame_hit_test_new(const Evas_Object* ewkFrame, int x, int y)
EINA_SAFETY_ON_NULL_RETURN_VAL(smartData->frame->contentRenderer(), 0);
WebCore::HitTestResult result = smartData->frame->eventHandler()->hitTestResultAtPoint
- (view->windowToContents(WebCore::IntPoint(x, y)),
- WebCore::HitTestRequest::ReadOnly | WebCore::HitTestRequest::Active | WebCore::HitTestRequest::IgnoreClipping);
+ (view->windowToContents(WebCore::IntPoint(x, y)),
+ /*allowShadowContent*/ false, /*ignoreClipping*/ true);
if (result.scrollbar())
return 0;
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp b/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp
index 903498fa2..2f9d7fdc8 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp
+++ b/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp
@@ -35,8 +35,6 @@
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
-#define IDX(column, row, rowspan) (column + (row * rowspan))
-
typedef struct _Ewk_Tiled_Backing_Store_Data Ewk_Tiled_Backing_Store_Data;
typedef struct _Ewk_Tiled_Backing_Store_Item Ewk_Tiled_Backing_Store_Item;
typedef struct _Ewk_Tiled_Backing_Store_Pre_Render_Request Ewk_Tiled_Backing_Store_Pre_Render_Request;
@@ -44,9 +42,7 @@ typedef struct _Ewk_Tiled_Backing_Store_Pre_Render_Request Ewk_Tiled_Backing_Sto
struct _Ewk_Tiled_Backing_Store_Item {
EINA_INLIST;
Ewk_Tile* tile;
- struct {
- Evas_Coord x, y, width, height;
- } geometry;
+ Evas_Coord_Rectangle geometry;
bool smoothScale;
};
@@ -63,7 +59,7 @@ struct _Ewk_Tiled_Backing_Store_Data {
struct {
Eina_Inlist** items;
Evas_Coord x, y, width, height;
- long columns, rows;
+ unsigned long columns, rows;
struct {
Evas_Coord width, height;
float zoom;
@@ -89,7 +85,7 @@ struct _Ewk_Tiled_Backing_Store_Data {
Evas_Coord width, height;
} model;
struct {
- Eina_Bool (*callback)(void* data, Ewk_Tile* tile, const Eina_Rectangle* area);
+ bool (*callback)(void* data, Ewk_Tile* tile, const Eina_Rectangle* area);
void* data;
Eina_Inlist* preRenderRequests;
Ecore_Idler* idler;
@@ -125,13 +121,14 @@ static Evas_Smart_Class _parent_sc = EVAS_SMART_CLASS_INIT_NULL;
}
static void _ewk_tiled_backing_store_fill_renderers(Ewk_Tiled_Backing_Store_Data* priv);
-static inline void _ewk_tiled_backing_store_view_dbg(const Ewk_Tiled_Backing_Store_Data* priv);
static inline void _ewk_tiled_backing_store_changed(Ewk_Tiled_Backing_Store_Data* priv);
+#ifdef DEBUG_MEM_LEAKS
+static inline void _ewk_tiled_backing_store_view_dbg(const Ewk_Tiled_Backing_Store_Data* priv);
+#endif
+
static inline void _ewk_tiled_backing_store_updates_process(Ewk_Tiled_Backing_Store_Data* priv)
{
- void* data = 0;
-
/* Do not process updates. Note that we still want to get updates requests
* in the queue in order to not miss any updates after the render is
* resumed.
@@ -139,8 +136,7 @@ static inline void _ewk_tiled_backing_store_updates_process(Ewk_Tiled_Backing_St
if (priv->render.suspend || !priv->view.visible)
return;
- if (priv->process.preCallback)
- data = priv->process.preCallback(priv->process.preData, priv->self);
+ void* data = priv->process.preCallback ? priv->process.preCallback(priv->process.preData, priv->self) : 0;
ewk_tile_matrix_updates_process(priv->model.matrix);
@@ -148,7 +144,7 @@ static inline void _ewk_tiled_backing_store_updates_process(Ewk_Tiled_Backing_St
priv->process.postCallback(priv->process.postData, data, priv->self);
}
-static int _ewk_tiled_backing_store_flush(void* data)
+static void _ewk_tiled_backing_store_flush(void* data)
{
Ewk_Tiled_Backing_Store_Data* priv = static_cast<Ewk_Tiled_Backing_Store_Data*>(data);
Ewk_Tile_Unused_Cache* tiledUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
@@ -158,22 +154,17 @@ static int _ewk_tiled_backing_store_flush(void* data)
ewk_tile_unused_cache_auto_flush(tiledUnusedCache);
} else
ERR("no cache?!");
-
- return 0;
}
static Ewk_Tile* _ewk_tiled_backing_store_tile_new(Ewk_Tiled_Backing_Store_Data* priv, unsigned long column, unsigned long row, float zoom)
{
- Ewk_Tile* tile;
Evas* evas = evas_object_evas_get(priv->self);
if (!evas) {
CRITICAL("evas_object_evas_get failed!");
return 0;
}
- tile = ewk_tile_matrix_tile_new
- (priv->model.matrix, evas, column, row, zoom);
-
+ Ewk_Tile* tile = ewk_tile_matrix_tile_new(priv->model.matrix, evas, column, row, zoom);
if (!tile) {
CRITICAL("ewk_tile_matrix_tile_new failed!");
return 0;
@@ -193,24 +184,25 @@ static void _ewk_tiled_backing_store_item_move(Ewk_Tiled_Backing_Store_Item* ite
static void _ewk_tiled_backing_store_item_resize(Ewk_Tiled_Backing_Store_Item* item, Evas_Coord width, Evas_Coord height)
{
- item->geometry.width = width;
- item->geometry.height = height;
+ item->geometry.w = width;
+ item->geometry.h = height;
- if (item->tile) {
- evas_object_resize(item->tile->image, width, height);
- evas_object_image_fill_set(item->tile->image, 0, 0, width, height);
- }
+ if (!item->tile)
+ return;
+
+ evas_object_resize(item->tile->image, width, height);
+ evas_object_image_fill_set(item->tile->image, 0, 0, width, height);
}
static void _ewk_tiled_backing_store_tile_associate(Ewk_Tiled_Backing_Store_Data* priv, Ewk_Tile* tile, Ewk_Tiled_Backing_Store_Item* item)
{
if (item->tile)
CRITICAL("item->tile=%p, but it should be 0!", item->tile);
+
item->tile = tile;
evas_object_move(item->tile->image, item->geometry.x, item->geometry.y);
- evas_object_resize(item->tile->image, item->geometry.width, item->geometry.height);
- evas_object_image_fill_set
- (item->tile->image, 0, 0, item->geometry.width, item->geometry.height);
+ evas_object_resize(item->tile->image, item->geometry.w, item->geometry.h);
+ evas_object_image_fill_set(item->tile->image, 0, 0, item->geometry.w, item->geometry.h);
evas_object_image_smooth_scale_set(item->tile->image, item->smoothScale);
evas_object_image_alpha_set(item->tile->image, priv->view.tile.hasAlpha);
@@ -222,12 +214,12 @@ static void _ewk_tiled_backing_store_tile_associate(Ewk_Tiled_Backing_Store_Data
static void _ewk_tiled_backing_store_tile_dissociate(Ewk_Tiled_Backing_Store_Data* priv, Ewk_Tiled_Backing_Store_Item* item, double lastUsed)
{
- Ewk_Tile_Unused_Cache* tileUnusedCache;
ewk_tile_hide(item->tile);
if (!ewk_tile_visible_get(item->tile))
evas_object_smart_member_del(item->tile->image);
+
ewk_tile_matrix_tile_put(priv->model.matrix, item->tile, lastUsed);
- tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
+ Ewk_Tile_Unused_Cache* tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
ewk_tile_unused_cache_auto_flush(tileUnusedCache);
item->tile = 0;
@@ -235,25 +227,23 @@ static void _ewk_tiled_backing_store_tile_dissociate(Ewk_Tiled_Backing_Store_Dat
static void _ewk_tiled_backing_store_tile_dissociate_all(Ewk_Tiled_Backing_Store_Data* priv)
{
- Eina_Inlist* list;
- Ewk_Tiled_Backing_Store_Item* item;
- int i;
double last_used = ecore_loop_time_get();
- for (i = 0; i < priv->view.rows; i++) {
- list = priv->view.items[i];
- EINA_INLIST_FOREACH(list, item)
+ for (unsigned long i = 0; i < priv->view.rows; ++i) {
+ Ewk_Tiled_Backing_Store_Item* item;
+ Eina_Inlist* list = priv->view.items[i];
+ EINA_INLIST_FOREACH(list, item) {
if (item->tile)
_ewk_tiled_backing_store_tile_dissociate(priv, item, last_used);
+ }
}
}
-static inline Eina_Bool _ewk_tiled_backing_store_pre_render_request_add(Ewk_Tiled_Backing_Store_Data* priv, unsigned long column, unsigned long row, float zoom)
+static inline bool _ewk_tiled_backing_store_pre_render_request_add(Ewk_Tiled_Backing_Store_Data* priv, unsigned long column, unsigned long row, float zoom)
{
Ewk_Tiled_Backing_Store_Pre_Render_Request* request = new Ewk_Tiled_Backing_Store_Pre_Render_Request;
- priv->render.preRenderRequests = eina_inlist_append
- (priv->render.preRenderRequests, EINA_INLIST_GET(request));
+ priv->render.preRenderRequests = eina_inlist_append(priv->render.preRenderRequests, EINA_INLIST_GET(request));
request->column = column;
request->row = row;
@@ -264,16 +254,13 @@ static inline Eina_Bool _ewk_tiled_backing_store_pre_render_request_add(Ewk_Tile
static inline void _ewk_tiled_backing_store_pre_render_request_del(Ewk_Tiled_Backing_Store_Data* priv, Ewk_Tiled_Backing_Store_Pre_Render_Request* request)
{
- priv->render.preRenderRequests = eina_inlist_remove
- (priv->render.preRenderRequests, EINA_INLIST_GET(request));
+ priv->render.preRenderRequests = eina_inlist_remove(priv->render.preRenderRequests, EINA_INLIST_GET(request));
delete request;
}
static inline Ewk_Tiled_Backing_Store_Pre_Render_Request* _ewk_tiled_backing_store_pre_render_request_first(const Ewk_Tiled_Backing_Store_Data* priv)
{
- return EINA_INLIST_CONTAINER_GET(
- priv->render.preRenderRequests,
- Ewk_Tiled_Backing_Store_Pre_Render_Request);
+ return EINA_INLIST_CONTAINER_GET(priv->render.preRenderRequests, Ewk_Tiled_Backing_Store_Pre_Render_Request);
}
static void _ewk_tiled_backing_store_pre_render_request_flush(Ewk_Tiled_Backing_Store_Data* priv)
@@ -290,12 +277,10 @@ static void _ewk_tiled_backing_store_pre_render_request_flush(Ewk_Tiled_Backing_
static void _ewk_tiled_backing_store_pre_render_request_clear(Ewk_Tiled_Backing_Store_Data* priv)
{
Eina_Inlist** preRenderList = &priv->render.preRenderRequests;
- Eina_Inlist* iter = *preRenderList, *next;
+ Eina_Inlist* iter = *preRenderList;
while (iter) {
- Ewk_Tiled_Backing_Store_Pre_Render_Request* request =
- EINA_INLIST_CONTAINER_GET(
- iter, Ewk_Tiled_Backing_Store_Pre_Render_Request);
- next = iter->next;
+ Ewk_Tiled_Backing_Store_Pre_Render_Request* request = EINA_INLIST_CONTAINER_GET(iter, Ewk_Tiled_Backing_Store_Pre_Render_Request);
+ Eina_Inlist* next = iter->next;
*preRenderList = eina_inlist_remove(*preRenderList, iter);
iter = next;
delete request;
@@ -305,49 +290,39 @@ static void _ewk_tiled_backing_store_pre_render_request_clear(Ewk_Tiled_Backing_
/* assumes priv->process.preCallback was called if required! */
static void _ewk_tiled_backing_store_pre_render_request_process_single(Ewk_Tiled_Backing_Store_Data* priv)
{
- Ewk_Tiled_Backing_Store_Pre_Render_Request* request;
- Eina_Rectangle area;
Ewk_Tile_Matrix* tileMatrix = priv->model.matrix;
- Ewk_Tile* tile;
- Ewk_Tile_Unused_Cache* tileUnusedCache;
- unsigned long column, row;
- float zoom;
double last_used = ecore_loop_time_get();
- request = _ewk_tiled_backing_store_pre_render_request_first(priv);
+ Ewk_Tiled_Backing_Store_Pre_Render_Request* request = _ewk_tiled_backing_store_pre_render_request_first(priv);
if (!request)
return;
- column = request->column;
- row = request->row;
- zoom = request->zoom;
+ unsigned long column = request->column;
+ unsigned long row = request->row;
+ float zoom = request->zoom;
if (ewk_tile_matrix_tile_exact_exists(tileMatrix, column, row, zoom)) {
DBG("no pre-render required for tile %lu,%lu @ %f.", column, row, zoom);
- goto end;
+ _ewk_tiled_backing_store_pre_render_request_del(priv, request);
+ ewk_tile_unused_cache_auto_flush(ewk_tile_matrix_unused_cache_get(priv->model.matrix));
+ return;
}
- tile = _ewk_tiled_backing_store_tile_new(priv, column, row, zoom);
- if (!tile)
- goto end;
+ Ewk_Tile* tile = _ewk_tiled_backing_store_tile_new(priv, column, row, zoom);
+ if (!tile) {
+ _ewk_tiled_backing_store_pre_render_request_del(priv, request);
+ ewk_tile_unused_cache_auto_flush(ewk_tile_matrix_unused_cache_get(priv->model.matrix));
+ return;
+ }
- area.x = 0;
- area.y = 0;
- area.w = priv->view.tile.width;
- area.h = priv->view.tile.height;
+ Eina_Rectangle area;
+ EINA_RECTANGLE_SET(&area, 0, 0, priv->view.tile.width, priv->view.tile.height);
priv->render.callback(priv->render.data, tile, &area);
- evas_object_image_data_update_add(
- tile->image,
- area.x, area.y, area.w, area.h);
+ evas_object_image_data_update_add(tile->image, area.x, area.y, area.w, area.h);
ewk_tile_matrix_tile_updates_clear(tileMatrix, tile);
ewk_tile_matrix_tile_put(tileMatrix, tile, last_used);
-
-end:
- _ewk_tiled_backing_store_pre_render_request_del(priv, request);
- tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
- ewk_tile_unused_cache_auto_flush(tileUnusedCache);
}
static Eina_Bool _ewk_tiled_backing_store_item_process_idler_cb(void* data)
@@ -383,11 +358,11 @@ static inline void _ewk_tiled_backing_store_item_process_idler_start(Ewk_Tiled_B
{
if (priv->render.idler || !priv->view.visible)
return;
- priv->render.idler = ecore_idler_add(
- _ewk_tiled_backing_store_item_process_idler_cb, priv);
+
+ priv->render.idler = ecore_idler_add(_ewk_tiled_backing_store_item_process_idler_cb, priv);
}
-static Eina_Bool _ewk_tiled_backing_store_disable_render(Ewk_Tiled_Backing_Store_Data* priv)
+static bool _ewk_tiled_backing_store_disable_render(Ewk_Tiled_Backing_Store_Data* priv)
{
if (priv->render.suspend)
return true;
@@ -397,7 +372,7 @@ static Eina_Bool _ewk_tiled_backing_store_disable_render(Ewk_Tiled_Backing_Store
return true;
}
-static Eina_Bool _ewk_tiled_backing_store_enable_render(Ewk_Tiled_Backing_Store_Data* priv)
+static bool _ewk_tiled_backing_store_enable_render(Ewk_Tiled_Backing_Store_Data* priv)
{
if (!priv->render.suspend)
return true;
@@ -410,7 +385,7 @@ static Eina_Bool _ewk_tiled_backing_store_enable_render(Ewk_Tiled_Backing_Store_
return true;
}
-static inline Eina_Bool _ewk_tiled_backing_store_item_fill(Ewk_Tiled_Backing_Store_Data* priv, Ewk_Tiled_Backing_Store_Item* item, unsigned long column, unsigned long row)
+static inline bool _ewk_tiled_backing_store_item_fill(Ewk_Tiled_Backing_Store_Data* priv, Ewk_Tiled_Backing_Store_Item* item, unsigned long column, unsigned long row)
{
if (!priv->view.visible)
return false;
@@ -423,7 +398,6 @@ static inline Eina_Bool _ewk_tiled_backing_store_item_fill(Ewk_Tiled_Backing_Sto
if (item->tile)
_ewk_tiled_backing_store_tile_dissociate(priv, item, lastUsed);
} else {
- Ewk_Tile* tile;
const float zoom = priv->view.tile.zoom;
if (item->tile) {
@@ -431,11 +405,10 @@ static inline Eina_Bool _ewk_tiled_backing_store_item_fill(Ewk_Tiled_Backing_Sto
if (old->row != currentRow || old->column != currentColumn || old->zoom != zoom)
_ewk_tiled_backing_store_tile_dissociate(priv, item, lastUsed);
else if (old->row == currentRow && old->column == currentColumn && old->zoom == zoom)
- goto end;
+ return true;
}
- tile = ewk_tile_matrix_tile_exact_get(priv->model.matrix, currentColumn, currentRow, zoom);
-
+ Ewk_Tile* tile = ewk_tile_matrix_tile_exact_get(priv->model.matrix, currentColumn, currentRow, zoom);
if (!tile) {
/* NOTE: it never returns 0 if item->tile was set! */
if (item->tile) {
@@ -457,10 +430,6 @@ static inline Eina_Bool _ewk_tiled_backing_store_item_fill(Ewk_Tiled_Backing_Sto
item, lastUsed);
_ewk_tiled_backing_store_tile_associate(priv, tile, item);
}
-
-end:
-
- return true;
}
return true;
@@ -468,14 +437,12 @@ end:
static Ewk_Tiled_Backing_Store_Item* _ewk_tiled_backing_store_item_add(Ewk_Tiled_Backing_Store_Data* priv, unsigned long column, unsigned long row)
{
- Evas_Coord x, y, tileWidth, tileHeight;
-
DBG("ewkBackingStore=%p", priv->self);
- tileWidth = priv->view.tile.width;
- tileHeight = priv->view.tile.height;
- x = priv->view.offset.base.x + priv->view.x + tileWidth * column;
- y = priv->view.offset.base.y + priv->view.y + tileHeight * row;
+ Evas_Coord tileWidth = priv->view.tile.width;
+ Evas_Coord tileHeight = priv->view.tile.height;
+ Evas_Coord x = priv->view.offset.base.x + priv->view.x + tileWidth * column;
+ Evas_Coord y = priv->view.offset.base.y + priv->view.y + tileHeight * row;
OwnPtr<Ewk_Tiled_Backing_Store_Item> item = adoptPtr(new Ewk_Tiled_Backing_Store_Item);
item->tile = 0;
@@ -499,7 +466,7 @@ static void _ewk_tiled_backing_store_item_del(Ewk_Tiled_Backing_Store_Data* priv
delete item;
}
-static void _ewk_tiled_backing_store_item_smooth_scale_set(Ewk_Tiled_Backing_Store_Item* item, Eina_Bool smoothScale)
+static void _ewk_tiled_backing_store_item_smooth_scale_set(Ewk_Tiled_Backing_Store_Item* item, bool smoothScale)
{
if (item->smoothScale == smoothScale)
return;
@@ -512,21 +479,18 @@ static inline void _ewk_tiled_backing_store_changed(Ewk_Tiled_Backing_Store_Data
{
if (priv->changed.any)
return;
+
evas_object_smart_changed(priv->self);
priv->changed.any = true;
}
-static void _ewk_tiled_backing_store_view_cols_end_del(Ewk_Tiled_Backing_Store_Data* priv, Eina_Inlist** rowList, unsigned int count)
+static void _ewk_tiled_backing_store_view_cols_end_del(Ewk_Tiled_Backing_Store_Data* priv, Eina_Inlist** rowList, unsigned long count)
{
- Eina_Inlist* nextItem;
- unsigned int i;
-
if (!count)
return;
- nextItem = (*rowList)->last;
-
- for (i = 0; i < count; i++) {
+ Eina_Inlist* nextItem = (*rowList)->last;
+ for (unsigned long i = 0; i < count; ++i) {
Ewk_Tiled_Backing_Store_Item* item;
item = EINA_INLIST_CONTAINER_GET(nextItem, Ewk_Tiled_Backing_Store_Item);
nextItem = nextItem->prev;
@@ -535,16 +499,14 @@ static void _ewk_tiled_backing_store_view_cols_end_del(Ewk_Tiled_Backing_Store_D
}
}
-static Eina_Bool _ewk_tiled_backing_store_view_cols_end_add(Ewk_Tiled_Backing_Store_Data* priv, Eina_Inlist** rowList, unsigned int baseColumn, unsigned int count)
+static bool _ewk_tiled_backing_store_view_cols_end_add(Ewk_Tiled_Backing_Store_Data* priv, Eina_Inlist** rowList, unsigned long baseColumn, unsigned long count)
{
- unsigned int i, row = rowList - priv->view.items;
-
- for (i = 0; i < count; i++, baseColumn++) {
- Ewk_Tiled_Backing_Store_Item* item;
+ const unsigned long row = rowList - priv->view.items;
- item = _ewk_tiled_backing_store_item_add(priv, baseColumn, row);
+ for (unsigned long i = 0; i < count; ++i, ++baseColumn) {
+ Ewk_Tiled_Backing_Store_Item* item = _ewk_tiled_backing_store_item_add(priv, baseColumn, row);
if (!item) {
- CRITICAL("failed to add column %u of %u in row %u.", i, count, row);
+ CRITICAL("failed to add column %lu of %lu in row %lu.", i, count, row);
_ewk_tiled_backing_store_view_cols_end_del(priv, rowList, i);
return false;
}
@@ -557,8 +519,7 @@ static Eina_Bool _ewk_tiled_backing_store_view_cols_end_add(Ewk_Tiled_Backing_St
static void _ewk_tiled_backing_store_view_row_del(Ewk_Tiled_Backing_Store_Data* priv, Eina_Inlist* row)
{
while (row) {
- Ewk_Tiled_Backing_Store_Item* item;
- item = EINA_INLIST_CONTAINER_GET(row, Ewk_Tiled_Backing_Store_Item);
+ Ewk_Tiled_Backing_Store_Item* item = EINA_INLIST_CONTAINER_GET(row, Ewk_Tiled_Backing_Store_Item);
row = row->next;
_ewk_tiled_backing_store_item_del(priv, item);
}
@@ -566,7 +527,7 @@ static void _ewk_tiled_backing_store_view_row_del(Ewk_Tiled_Backing_Store_Data*
static void _ewk_tiled_backing_store_view_rows_range_del(Ewk_Tiled_Backing_Store_Data* priv, Eina_Inlist** start, Eina_Inlist** end)
{
- for (; start < end; start++) {
+ for (; start < end; ++start) {
_ewk_tiled_backing_store_view_row_del(priv, *start);
*start = 0;
}
@@ -574,11 +535,8 @@ static void _ewk_tiled_backing_store_view_rows_range_del(Ewk_Tiled_Backing_Store
static void _ewk_tiled_backing_store_view_rows_all_del(Ewk_Tiled_Backing_Store_Data* priv)
{
- Eina_Inlist** start;
- Eina_Inlist** end;
-
- start = priv->view.items;
- end = priv->view.items + priv->view.rows;
+ Eina_Inlist** start = priv->view.items;
+ Eina_Inlist** end = priv->view.items + priv->view.rows;
_ewk_tiled_backing_store_view_rows_range_del(priv, start, end);
free(priv->view.items);
@@ -626,6 +584,7 @@ static void _ewk_tiled_backing_store_smart_member_del(Evas_Object* ewkBackingSto
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
if (!priv->contentsClipper)
return;
+
evas_object_clip_unset(member);
if (!evas_object_clipees_get(priv->contentsClipper))
evas_object_hide(priv->contentsClipper);
@@ -636,6 +595,7 @@ static void _ewk_tiled_backing_store_smart_member_add(Evas_Object* ewkBackingSto
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
if (!priv->contentsClipper)
return;
+
evas_object_clip_set(member, priv->contentsClipper);
if (priv->view.visible)
evas_object_show(priv->contentsClipper);
@@ -644,9 +604,9 @@ static void _ewk_tiled_backing_store_smart_member_add(Evas_Object* ewkBackingSto
#ifdef DEBUG_MEM_LEAKS
static void _ewk_tiled_backing_store_mem_dbg(Ewk_Tiled_Backing_Store_Data* priv)
{
- static int run = 0;
+ static unsigned run = 0;
- run++;
+ ++run;
printf("\n--- BEGIN DEBUG TILED BACKING STORE MEMORY [%d] --\n"
"tile=%0.2f, obj=%p, priv=%p, view.items=%p, matrix=%p\n",
@@ -659,30 +619,28 @@ static void _ewk_tiled_backing_store_mem_dbg(Ewk_Tiled_Backing_Store_Data* priv)
printf("--- END DEBUG TILED BACKING STORE MEMORY [%d] --\n\n", run);
}
-static Eina_Bool _ewk_tiled_backing_store_sig_usr(void* data, int type, void* event)
+static bool _ewk_tiled_backing_store_sig_usr(void* data, int type, void* event)
{
- Ecore_Event_Signal_User* signalUser = (Ecore_Event_Signal_User*)event;
- Ewk_Tiled_Backing_Store_Data* priv = (Ewk_Tiled_Backing_Store_Data*)data;
+ Ecore_Event_Signal_User* signalUser = static_cast<Ecore_Event_Signal_User*>(event);
+ Ewk_Tiled_Backing_Store_Data* priv = static_cast<Ewk_Tiled_Backing_Store_Data*>(data);
if (signalUser->number == 2) {
- Ewk_Tile_Unused_Cache* tileUnusedCache;
- tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
+ Ewk_Tile_Unused_Cache* tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
ewk_tile_unused_cache_auto_flush(tileUnusedCache);
}
_ewk_tiled_backing_store_view_dbg(priv);
_ewk_tiled_backing_store_mem_dbg(priv);
+
return true;
}
#endif
static void _ewk_tiled_backing_store_smart_add(Evas_Object* ewkBackingStore)
{
- Ewk_Tiled_Backing_Store_Data* priv;
-
DBG("ewkBackingStore=%p", ewkBackingStore);
- priv = static_cast<Ewk_Tiled_Backing_Store_Data*>(calloc(1, sizeof(*priv)));
+ Ewk_Tiled_Backing_Store_Data* priv = static_cast<Ewk_Tiled_Backing_Store_Data*>(calloc(1, sizeof(*priv)));
if (!priv)
return;
@@ -735,9 +693,8 @@ static void _ewk_tiled_backing_store_smart_del(Evas_Object* ewkBackingStore)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
DBG("ewkBackingStore=%p", ewkBackingStore);
- Ewk_Tile_Unused_Cache* tileUnusedCache;
- tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
+ Ewk_Tile_Unused_Cache* tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
ewk_tile_unused_cache_unlock_area(tileUnusedCache);
_ewk_tiled_backing_store_flush(priv);
@@ -799,6 +756,7 @@ static void _ewk_tiled_backing_store_smart_resize(Evas_Object* ewkBackingStore,
static void _ewk_tiled_backing_store_smart_show(Evas_Object* ewkBackingStore)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
+
priv->view.visible = true;
ewk_tiled_backing_store_enable_render(ewkBackingStore);
_parent_sc.show(ewkBackingStore);
@@ -807,6 +765,7 @@ static void _ewk_tiled_backing_store_smart_show(Evas_Object* ewkBackingStore)
static void _ewk_tiled_backing_store_smart_hide(Evas_Object* ewkBackingStore)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
+
priv->view.visible = false;
ewk_tiled_backing_store_disable_render(ewkBackingStore);
_ewk_tiled_backing_store_tile_dissociate_all(priv);
@@ -815,25 +774,22 @@ static void _ewk_tiled_backing_store_smart_hide(Evas_Object* ewkBackingStore)
static void _ewk_tiled_backing_store_recalc_renderers(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord width, Evas_Coord height, Evas_Coord tileWidth, Evas_Coord tileHeight)
{
- long columns, rows, oldRows, oldCols;
INF("ewkBackingStore=%p, new size: %dx%d", priv->self, width, height);
- columns = 1 + static_cast<int>(ceil(width / static_cast<float>(tileWidth)));
- rows = 1 + static_cast<int>(ceil(height / static_cast<float>(tileHeight)));
+ unsigned long columns = 1 + static_cast<unsigned long>(ceil(width / static_cast<float>(tileWidth)));
+ unsigned long rows = 1 + static_cast<unsigned long>(ceil(height / static_cast<float>(tileHeight)));
- INF("ewkBackingStore=%p new grid size columns: %ld, rows: %ld, was %ld, %ld",
- priv->self, columns, rows, priv->view.columns, priv->view.rows);
+ INF("ewkBackingStore=%p new grid size columns: %lu, rows: %lu, was %lu, %lu", priv->self, columns, rows, priv->view.columns, priv->view.rows);
if (priv->view.columns == columns && priv->view.rows == rows)
return;
- oldCols = priv->view.columns;
- oldRows = priv->view.rows;
+ unsigned long oldCols = priv->view.columns;
+ unsigned long oldRows = priv->view.rows;
if (rows < oldRows) {
- Eina_Inlist** start, **end;
- start = priv->view.items + rows;
- end = priv->view.items + oldRows;
+ Eina_Inlist** start = priv->view.items + rows;
+ Eina_Inlist** end = priv->view.items + oldRows;
_ewk_tiled_backing_store_view_rows_range_del(priv, start, end);
}
@@ -847,9 +803,9 @@ static void _ewk_tiled_backing_store_recalc_renderers(Ewk_Tiled_Backing_Store_Da
if (rows > oldRows) {
Eina_Inlist** start = priv->view.items + oldRows;
Eina_Inlist** end = priv->view.items + rows;
- for (; start < end; start++) {
+ for (; start < end; ++start) {
*start = 0;
- Eina_Bool result = _ewk_tiled_backing_store_view_cols_end_add(priv, start, 0, columns);
+ bool result = _ewk_tiled_backing_store_view_cols_end_add(priv, start, 0, columns);
if (!result) {
CRITICAL("failed to allocate %ld columns", columns);
_ewk_tiled_backing_store_view_rows_range_del(priv, priv->view.items + oldRows, start);
@@ -860,16 +816,16 @@ static void _ewk_tiled_backing_store_recalc_renderers(Ewk_Tiled_Backing_Store_Da
}
if (columns != oldCols) {
- int todo = columns - oldCols;
+ long todo = columns - oldCols;
Eina_Inlist** start = priv->view.items;
Eina_Inlist** end = start + std::min(oldRows, rows);
if (todo > 0) {
- for (; start < end; start++) {
- Eina_Bool result = _ewk_tiled_backing_store_view_cols_end_add(priv, start, oldCols, todo);
+ for (; start < end; ++start) {
+ bool result = _ewk_tiled_backing_store_view_cols_end_add(priv, start, oldCols, todo);
if (!result) {
- CRITICAL("failed to allocate %d columns!", todo);
+ CRITICAL("failed to allocate %ld columns!", todo);
- for (start--; start >= priv->view.items; start--)
+ for (start--; start >= priv->view.items; --start)
_ewk_tiled_backing_store_view_cols_end_del(priv, start, todo);
if (rows > oldRows) {
start = priv->view.items + oldRows;
@@ -882,7 +838,7 @@ static void _ewk_tiled_backing_store_recalc_renderers(Ewk_Tiled_Backing_Store_Da
}
} else if (todo < 0) {
todo = -todo;
- for (; start < end; start++)
+ for (; start < end; ++start)
_ewk_tiled_backing_store_view_cols_end_del(priv, start, todo);
}
}
@@ -897,14 +853,13 @@ static void _ewk_tiled_backing_store_smart_calculate_size(Ewk_Tiled_Backing_Stor
priv->view.width = width;
priv->view.height = height;
- _ewk_tiled_backing_store_recalc_renderers(
- priv, width, height, priv->view.tile.width, priv->view.tile.height);
+ _ewk_tiled_backing_store_recalc_renderers(priv, width, height, priv->view.tile.width, priv->view.tile.height);
}
+#ifdef DEBUG_MEM_LEAKS
// TODO: remove me later.
static inline void _ewk_tiled_backing_store_view_dbg(const Ewk_Tiled_Backing_Store_Data* priv)
{
- Eina_Inlist** start, **end;
printf("tiles=%2ld,%2ld model=%2ld,%2ld [%dx%d] base=%+3ld,%+4ld offset=%+4d,%+4d old=%+4d,%+4d base=%+3d,%+3d\n",
priv->view.columns, priv->view.rows,
priv->model.current.columns, priv->model.current.rows,
@@ -914,9 +869,9 @@ static inline void _ewk_tiled_backing_store_view_dbg(const Ewk_Tiled_Backing_Sto
priv->view.offset.old.x, priv->view.offset.old.y,
priv->view.offset.base.x, priv->view.offset.base.y);
- start = priv->view.items;
- end = priv->view.items + priv->view.rows;
- for (; start < end; start++) {
+ Eina_Inlist** start = priv->view.items;
+ Eina_Inlist** end = priv->view.items + priv->view.rows;
+ for (; start < end; ++start) {
const Ewk_Tiled_Backing_Store_Item* item;
EINA_INLIST_FOREACH(*start, item) {
@@ -931,6 +886,7 @@ static inline void _ewk_tiled_backing_store_view_dbg(const Ewk_Tiled_Backing_Sto
}
printf("---\n");
}
+#endif
/**
* @internal
@@ -945,36 +901,36 @@ static inline void _ewk_tiled_backing_store_view_dbg(const Ewk_Tiled_Backing_Sto
*
* @param count the number of times to repeat the process.
*/
-static void _ewk_tiled_backing_store_view_wrap_up(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y, unsigned int count)
+static void _ewk_tiled_backing_store_view_wrap_up(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y, unsigned long count)
{
- unsigned int lastRow = priv->view.rows - 1;
+ unsigned long lastRow = priv->view.rows - 1;
Evas_Coord tileWidth = priv->view.tile.width;
Evas_Coord tileHeight = priv->view.tile.height;
Evas_Coord offsetY = priv->view.offset.base.y + count * tileHeight;
Evas_Coord tilePositionY = y + (lastRow - count + 1) * tileHeight + offsetY;
- Eina_Inlist** iteratorStart, **iteratorEnd;
Evas_Coord originX = x + priv->view.offset.base.x;
- iteratorStart = priv->view.items;
- iteratorEnd = iteratorStart + lastRow;
+ Eina_Inlist** start = priv->view.items;
+ Eina_Inlist** end = start + lastRow;
- for (; count > 0; count--) {
- Eina_Inlist** iteratorList;
- Eina_Inlist* temp = *iteratorStart;
- Ewk_Tiled_Backing_Store_Item* item;
- Evas_Coord tilePositionX = originX;
- int column = 0;
+ for (; count > 0; --count) {
+ Eina_Inlist** it;
+ Eina_Inlist* temp = *start;
+
+ for (it = start; it < end; ++it)
+ *it = *(it + 1);
+ *it = temp;
- for (iteratorList = iteratorStart; iteratorList < iteratorEnd; iteratorList++)
- *iteratorList = *(iteratorList + 1);
- *iteratorList = temp;
+ ++priv->model.base.row;
- priv->model.base.row++;
+ Evas_Coord tilePositionX = originX;
+ unsigned long column = 0;
+ Ewk_Tiled_Backing_Store_Item* item;
EINA_INLIST_FOREACH(temp, item) {
_ewk_tiled_backing_store_item_move(item, tilePositionX, tilePositionY);
tilePositionX += tileWidth;
_ewk_tiled_backing_store_item_fill(priv, item, column, lastRow);
- column++;
+ ++column;
}
tilePositionY += tileHeight;
}
@@ -994,35 +950,35 @@ static void _ewk_tiled_backing_store_view_wrap_up(Ewk_Tiled_Backing_Store_Data*
*
* @param count the number of times to repeat the process.
*/
-static void _ewk_tiled_backing_store_view_wrap_down(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y, unsigned int count)
+static void _ewk_tiled_backing_store_view_wrap_down(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y, unsigned long count)
{
Evas_Coord tileWidth = priv->view.tile.width;
Evas_Coord tileHeight = priv->view.tile.height;
Evas_Coord offsetY = priv->view.offset.base.y - count * tileHeight;
Evas_Coord tilePositionY = y + offsetY + (count - 1) * tileHeight;
- Eina_Inlist** iteratorStart, **iteratorEnd;
Evas_Coord originX = x + priv->view.offset.base.x;
- iteratorStart = priv->view.items + priv->view.rows - 1;
- iteratorEnd = priv->view.items;
+ Eina_Inlist** start = priv->view.items + priv->view.rows - 1;
+ Eina_Inlist** end = priv->view.items;
- for (; count > 0; count--) {
- Eina_Inlist** iteratorList;
- Eina_Inlist* temp = *iteratorStart;
- Ewk_Tiled_Backing_Store_Item* item;
+ for (; count > 0; --count) {
+ Eina_Inlist** it;
+ Eina_Inlist* temp = *start;
Evas_Coord tilePositionX = originX;
- int column = 0;
- for (iteratorList = iteratorStart; iteratorList > iteratorEnd; iteratorList--)
- *iteratorList = *(iteratorList - 1);
- *iteratorList = temp;
+ for (it = start; it > end; --it)
+ *it = *(it - 1);
+ *it = temp;
+
+ --priv->model.base.row;
- priv->model.base.row--;
+ unsigned long column = 0;
+ Ewk_Tiled_Backing_Store_Item* item;
EINA_INLIST_FOREACH(temp, item) {
_ewk_tiled_backing_store_item_move(item, tilePositionX, tilePositionY);
tilePositionX += tileWidth;
_ewk_tiled_backing_store_item_fill(priv, item, column, 0);
- column++;
+ ++column;
}
tilePositionY -= tileHeight;
}
@@ -1042,35 +998,32 @@ static void _ewk_tiled_backing_store_view_wrap_down(Ewk_Tiled_Backing_Store_Data
*
* @param count the number of times to repeat the process.
*/
-static void _ewk_tiled_backing_store_view_wrap_left(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y, unsigned int count)
+static void _ewk_tiled_backing_store_view_wrap_left(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y, unsigned long count)
{
- unsigned int row, lastColumn = priv->view.columns - 1;
+ unsigned long lastColumn = priv->view.columns - 1;
Evas_Coord tileWidth = priv->view.tile.width;
Evas_Coord tileHeight = priv->view.tile.height;
Evas_Coord offsetX = priv->view.offset.base.x + count * tileWidth;
Evas_Coord offsetY = y + priv->view.offset.base.y;
- Eina_Inlist** iterator;
- Eina_Inlist** iteratorEnd;
- unsigned int baseColumn = lastColumn - count + 1;
+
+ unsigned long baseColumn = lastColumn - count + 1;
Evas_Coord originX = x + baseColumn * tileWidth + offsetX;
- iterator = priv->view.items;
- iteratorEnd = iterator + priv->view.rows;
- row = 0;
+ Eina_Inlist** it = priv->view.items;
+ Eina_Inlist** end = it + priv->view.rows;
priv->model.base.column += count;
- for (; iterator < iteratorEnd; iterator++, row++) {
+ for (unsigned long row = 0; it < end; ++it, ++row) {
Evas_Coord tilePositionX = originX;
- unsigned int column = baseColumn;
+ unsigned long column = baseColumn;
- for (unsigned int i = 0; i < count; i++, column++, tilePositionX += tileWidth) {
- Ewk_Tiled_Backing_Store_Item* it;
- it = EINA_INLIST_CONTAINER_GET(*iterator, Ewk_Tiled_Backing_Store_Item);
- *iterator = eina_inlist_demote(*iterator, *iterator);
+ for (unsigned long i = 0; i < count; ++i, ++column, tilePositionX += tileWidth) {
+ Ewk_Tiled_Backing_Store_Item* item = EINA_INLIST_CONTAINER_GET(*it, Ewk_Tiled_Backing_Store_Item);
+ *it = eina_inlist_demote(*it, *it);
- _ewk_tiled_backing_store_item_move(it, tilePositionX, offsetY);
- _ewk_tiled_backing_store_item_fill(priv, it, column, row);
+ _ewk_tiled_backing_store_item_move(item, tilePositionX, offsetY);
+ _ewk_tiled_backing_store_item_fill(priv, item, column, row);
}
offsetY += tileHeight;
}
@@ -1091,31 +1044,28 @@ static void _ewk_tiled_backing_store_view_wrap_left(Ewk_Tiled_Backing_Store_Data
*
* @param count the number of times to repeat the process.
*/
-static void _ewk_tiled_backing_store_view_wrap_right(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y, unsigned int count)
+static void _ewk_tiled_backing_store_view_wrap_right(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y, unsigned long count)
{
- unsigned int row;
Evas_Coord tileWidth = priv->view.tile.width;
Evas_Coord tileHeight = priv->view.tile.height;
Evas_Coord offsetX = priv->view.offset.base.x - count * tileWidth;
Evas_Coord tilePositionY = y + priv->view.offset.base.y;
- Eina_Inlist** iterator, ** iteratorEnd;
- unsigned int baseColumn = count - 1;
+
+ unsigned long baseColumn = count - 1;
Evas_Coord originX = x + baseColumn * tileWidth + offsetX;
- iterator = priv->view.items;
- iteratorEnd = iterator + priv->view.rows;
- row = 0;
+ Eina_Inlist** it = priv->view.items;
+ Eina_Inlist** end = it + priv->view.rows;
priv->model.base.column -= count;
- for (; iterator < iteratorEnd; iterator++, row++) {
+ for (unsigned long row = 0; it < end; ++it, ++row) {
Evas_Coord tilePositionX = originX;
- unsigned int column = baseColumn;
+ unsigned long column = baseColumn;
- for (unsigned int i = 0; i < count; i++, column--, tilePositionX -= tileWidth) {
- Ewk_Tiled_Backing_Store_Item* item;
- item = EINA_INLIST_CONTAINER_GET((*iterator)->last, Ewk_Tiled_Backing_Store_Item);
- *iterator = eina_inlist_promote(*iterator, (*iterator)->last);
+ for (unsigned long i = 0; i < count; ++i, --column, tilePositionX -= tileWidth) {
+ Ewk_Tiled_Backing_Store_Item* item = EINA_INLIST_CONTAINER_GET((*it)->last, Ewk_Tiled_Backing_Store_Item);
+ *it = eina_inlist_promote(*it, (*it)->last);
_ewk_tiled_backing_store_item_move(item, tilePositionX, tilePositionY);
_ewk_tiled_backing_store_item_fill(priv, item, column, row);
@@ -1128,33 +1078,28 @@ static void _ewk_tiled_backing_store_view_wrap_right(Ewk_Tiled_Backing_Store_Dat
static void _ewk_tiled_backing_store_view_refill(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y, int stepX, int stepY)
{
- Eina_Inlist** iterator, **iteratorEnd;
- Evas_Coord baseTilePositionX, tilePositionY, tileWidth, tileHeight;
- unsigned int row;
-
evas_object_move(priv->base.clipper, x, y);
- tileWidth = priv->view.tile.width;
- tileHeight = priv->view.tile.height;
+ Evas_Coord tileWidth = priv->view.tile.width;
+ Evas_Coord tileHeight = priv->view.tile.height;
- baseTilePositionX = x + priv->view.offset.base.x;
- tilePositionY = y + priv->view.offset.base.y;
+ Evas_Coord baseTilePositionX = x + priv->view.offset.base.x;
+ Evas_Coord tilePositionY = y + priv->view.offset.base.y;
- iterator = priv->view.items;
- iteratorEnd = iterator + priv->view.rows;
- row = 0;
+ Eina_Inlist** it = priv->view.items;
+ Eina_Inlist** end = it + priv->view.rows;
priv->model.base.column -= stepX;
priv->model.base.row -= stepY;
- for (; iterator < iteratorEnd; iterator++, row++) {
+ for (unsigned long row = 0; it < end; ++it, ++row) {
Ewk_Tiled_Backing_Store_Item* item;
Evas_Coord newTilePositionX = baseTilePositionX;
- unsigned int column = 0;
- EINA_INLIST_FOREACH(*iterator, item) {
+ unsigned long column = 0;
+ EINA_INLIST_FOREACH(*it, item) {
_ewk_tiled_backing_store_item_fill(priv, item, column, row);
_ewk_tiled_backing_store_item_move(item, newTilePositionX, tilePositionY);
- column++;
+ ++column;
newTilePositionX += tileWidth;
}
tilePositionY += tileHeight;
@@ -1163,23 +1108,20 @@ static void _ewk_tiled_backing_store_view_refill(Ewk_Tiled_Backing_Store_Data* p
static void _ewk_tiled_backing_store_view_pos_apply(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y)
{
- Eina_Inlist** iterator, **iteratorEnd;
- Evas_Coord baseTilePositionX, baseTilePositionY, tileWidth, tileHeight;
-
evas_object_move(priv->base.clipper, x, y);
- tileWidth = priv->view.tile.width;
- tileHeight = priv->view.tile.height;
+ Evas_Coord tileWidth = priv->view.tile.width;
+ Evas_Coord tileHeight = priv->view.tile.height;
- baseTilePositionX = x + priv->view.offset.base.x;
- baseTilePositionY = y + priv->view.offset.base.y;
+ Evas_Coord baseTilePositionX = x + priv->view.offset.base.x;
+ Evas_Coord baseTilePositionY = y + priv->view.offset.base.y;
- iterator = priv->view.items;
- iteratorEnd = iterator + priv->view.rows;
- for (; iterator < iteratorEnd; iterator++) {
+ Eina_Inlist** it = priv->view.items;
+ Eina_Inlist** end = it + priv->view.rows;
+ for (; it < end; ++it) {
Ewk_Tiled_Backing_Store_Item* item;
Evas_Coord offsetX = baseTilePositionX;
- EINA_INLIST_FOREACH(*iterator, item) {
+ EINA_INLIST_FOREACH(*it, item) {
_ewk_tiled_backing_store_item_move(item, offsetX, baseTilePositionY);
offsetX += tileWidth;
}
@@ -1191,72 +1133,59 @@ static void _ewk_tiled_backing_store_smart_calculate_offset_force(Ewk_Tiled_Back
{
Evas_Coord deltaX = priv->view.offset.current.x - priv->view.offset.old.x;
Evas_Coord deltaY = priv->view.offset.current.y - priv->view.offset.old.y;
- Evas_Coord tileWidth, tileHeight;
- int stepY, stepX;
INF("ewkBackingStore=%p, offset: %+4d, %+4d (%+4d, %+4d)",
priv->self, deltaX, deltaY, priv->view.offset.current.x, priv->view.offset.current.y);
- tileWidth = priv->view.tile.width;
- tileHeight = priv->view.tile.height;
+ Evas_Coord tileWidth = priv->view.tile.width;
+ Evas_Coord tileHeight = priv->view.tile.height;
- long newColumn = -priv->view.offset.current.x / tileWidth;
- stepX = priv->model.base.column - newColumn;
- long newRow = -priv->view.offset.current.y / tileHeight;
- stepY = priv->model.base.row - newRow;
+ unsigned long newColumn = -priv->view.offset.current.x / tileWidth;
+ int stepX = priv->model.base.column - newColumn;
+ unsigned long newRow = -priv->view.offset.current.y / tileHeight;
+ int stepY = priv->model.base.row - newRow;
priv->view.offset.old.x = priv->view.offset.current.x;
priv->view.offset.old.y = priv->view.offset.current.y;
- evas_object_move(
- priv->contentsClipper,
- priv->view.offset.current.x + priv->view.x,
- priv->view.offset.current.y + priv->view.y);
+ evas_object_move(priv->contentsClipper, priv->view.offset.current.x + priv->view.x, priv->view.offset.current.y + priv->view.y);
priv->view.offset.base.x += deltaX - stepX * tileWidth;
priv->view.offset.base.y += deltaY - stepY * tileHeight;
- _ewk_tiled_backing_store_view_refill
- (priv, priv->view.x, priv->view.y, stepX, stepY);
+ _ewk_tiled_backing_store_view_refill(priv, priv->view.x, priv->view.y, stepX, stepY);
}
static void _ewk_tiled_backing_store_smart_calculate_offset(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y)
{
Evas_Coord deltaX = priv->view.offset.current.x - priv->view.offset.old.x;
Evas_Coord deltaY = priv->view.offset.current.y - priv->view.offset.old.y;
- Evas_Coord tileWidth, tileHeight;
- int stepY, stepX;
- INF("ewkBackingStore=%p, offset: %+4d, %+4d (%+4d, %+4d)",
- priv->self, deltaX, deltaY, priv->view.offset.current.x, priv->view.offset.current.y);
+ INF("ewkBackingStore=%p, offset: %+4d, %+4d (%+4d, %+4d)", priv->self, deltaX, deltaY, priv->view.offset.current.x, priv->view.offset.current.y);
if (!deltaX && !deltaY)
return;
- tileWidth = priv->view.tile.width;
- tileHeight = priv->view.tile.height;
+ Evas_Coord tileWidth = priv->view.tile.width;
+ Evas_Coord tileHeight = priv->view.tile.height;
long newCol = -priv->view.offset.current.x / tileWidth;
- stepX = priv->model.base.column - newCol;
+ long stepX = priv->model.base.column - newCol;
long newRow = -priv->view.offset.current.y / tileHeight;
- stepY = priv->model.base.row - newRow;
+ long stepY = priv->model.base.row - newRow;
priv->view.offset.old.x = priv->view.offset.current.x;
priv->view.offset.old.y = priv->view.offset.current.y;
- evas_object_move(
- priv->contentsClipper,
- priv->view.offset.current.x + priv->view.x,
- priv->view.offset.current.y + priv->view.y);
+ evas_object_move(priv->contentsClipper, priv->view.offset.current.x + priv->view.x, priv->view.offset.current.y + priv->view.y);
- if ((stepX < 0 && stepX <= -priv->view.columns)
- || (stepX > 0 && stepX >= priv->view.columns)
- || (stepY < 0 && stepY <= -priv->view.rows)
- || (stepY > 0 && stepY >= priv->view.rows)) {
+ if ((stepX < 0 && stepX <= -static_cast<long>(priv->view.columns))
+ || (stepX > 0 && stepX >= static_cast<long>(priv->view.columns))
+ || (stepY < 0 && stepY <= -static_cast<long>(priv->view.rows))
+ || (stepY > 0 && stepY >= static_cast<long>(priv->view.rows))) {
priv->view.offset.base.x += deltaX - stepX * tileWidth;
priv->view.offset.base.y += deltaY - stepY * tileHeight;
- _ewk_tiled_backing_store_view_refill
- (priv, priv->view.x, priv->view.y, stepX, stepY);
+ _ewk_tiled_backing_store_view_refill(priv, priv->view.x, priv->view.y, stepX, stepY);
return;
}
@@ -1281,21 +1210,16 @@ static void _ewk_tiled_backing_store_smart_calculate_pos(Ewk_Tiled_Backing_Store
_ewk_tiled_backing_store_view_pos_apply(priv, x, y);
priv->view.x = x;
priv->view.y = y;
- evas_object_move(
- priv->contentsClipper,
- priv->view.offset.current.x + priv->view.x,
- priv->view.offset.current.y + priv->view.y);
+ evas_object_move(priv->contentsClipper, priv->view.offset.current.x + priv->view.x, priv->view.offset.current.y + priv->view.y);
}
static void _ewk_tiled_backing_store_fill_renderers(Ewk_Tiled_Backing_Store_Data* priv)
{
- Eina_Inlist* list;
- Ewk_Tiled_Backing_Store_Item* item;
- int i, j;
+ for (unsigned long i = 0; i < priv->view.rows; ++i) {
+ Eina_Inlist* list = priv->view.items[i];
- for (i = 0; i < priv->view.rows; i++) {
- list = priv->view.items[i];
- j = 0;
+ unsigned long j = 0;
+ Ewk_Tiled_Backing_Store_Item* item;
EINA_INLIST_FOREACH(list, item)
_ewk_tiled_backing_store_item_fill(priv, item, j++, i);
}
@@ -1318,10 +1242,8 @@ static void _ewk_tiled_backing_store_smart_calculate(Evas_Object* ewkBackingStor
ewk_tile_matrix_invalidate(priv->model.matrix);
if (!priv->render.suspend && (priv->changed.model || priv->changed.contentsSize)) {
- unsigned long columns, rows;
-
- columns = priv->model.width / priv->view.tile.width + 1;
- rows = priv->model.height / priv->view.tile.height + 1;
+ unsigned long columns = priv->model.width / priv->view.tile.width + 1;
+ unsigned long rows = priv->model.height / priv->view.tile.height + 1;
priv->model.old.columns = priv->model.current.columns;
priv->model.old.rows = priv->model.current.rows;
@@ -1359,10 +1281,8 @@ static void _ewk_tiled_backing_store_smart_calculate(Evas_Object* ewkBackingStor
/* Make sure we do not miss any important repaint by
* repainting the whole viewport */
- const Eina_Rectangle rect =
- { 0, 0, priv->model.width, priv->model.height };
- ewk_tile_matrix_update(priv->model.matrix, &rect,
- priv->view.tile.zoom);
+ const Eina_Rectangle rect = { 0, 0, priv->model.width, priv->model.height };
+ ewk_tile_matrix_update(priv->model.matrix, &rect, priv->view.tile.zoom);
priv->changed.contentsSize = false;
}
@@ -1374,12 +1294,12 @@ static void _ewk_tiled_backing_store_smart_calculate(Evas_Object* ewkBackingStor
if (priv->view.offset.base.x > 0
|| priv->view.offset.base.x <= - priv->view.tile.width
|| priv->view.offset.base.y > 0
- || priv->view.offset.base.y <= - priv->view.tile.height)
+ || priv->view.offset.base.y <= - priv->view.tile.height) {
ERR("incorrect base offset %+4d,%+4d, tile=%dx%d, current=%+4d,%+4d\n",
priv->view.offset.base.x, priv->view.offset.base.y,
priv->view.tile.width, priv->view.tile.height,
priv->view.offset.current.x, priv->view.offset.current.y);
-
+ }
}
Evas_Object* ewk_tiled_backing_store_add(Evas* canvas)
@@ -1409,17 +1329,19 @@ Evas_Object* ewk_tiled_backing_store_add(Evas* canvas)
return evas_object_smart_add(canvas, smart);
}
-void ewk_tiled_backing_store_render_cb_set(Evas_Object* ewkBackingStore, Eina_Bool (*callback)(void* data, Ewk_Tile* tile, const Eina_Rectangle* area), const void* data)
+void ewk_tiled_backing_store_render_cb_set(Evas_Object* ewkBackingStore, bool (*callback)(void* data, Ewk_Tile* tile, const Eina_Rectangle* area), const void* data)
{
EINA_SAFETY_ON_NULL_RETURN(callback);
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
+
priv->render.callback = callback;
- priv->render.data = (void*)data;
+ priv->render.data = const_cast<void*>(data);
}
Ewk_Tile_Unused_Cache* ewk_tiled_backing_store_tile_unused_cache_get(const Evas_Object* ewkBackingStore)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv, 0);
+
return ewk_tile_matrix_unused_cache_get(priv->model.matrix);
}
@@ -1433,7 +1355,7 @@ void ewk_tiled_backing_store_tile_unused_cache_set(Evas_Object* ewkBackingStore,
_ewk_tiled_backing_store_model_matrix_create(priv, tileUnusedCache);
}
-static Eina_Bool _ewk_tiled_backing_store_scroll_full_offset_set_internal(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y)
+static bool _ewk_tiled_backing_store_scroll_full_offset_set_internal(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord x, Evas_Coord y)
{
/* TODO: check offset go out of bounds, clamp */
if (priv->render.disabled)
@@ -1448,7 +1370,7 @@ static Eina_Bool _ewk_tiled_backing_store_scroll_full_offset_set_internal(Ewk_Ti
return true;
}
-Eina_Bool ewk_tiled_backing_store_scroll_full_offset_set(Evas_Object* ewkBackingStore, Evas_Coord x, Evas_Coord y)
+bool ewk_tiled_backing_store_scroll_full_offset_set(Evas_Object* ewkBackingStore, Evas_Coord x, Evas_Coord y)
{
DBG("ewkBackingStore=%p, x=%d, y=%d", ewkBackingStore, x, y);
@@ -1459,7 +1381,7 @@ Eina_Bool ewk_tiled_backing_store_scroll_full_offset_set(Evas_Object* ewkBacking
return _ewk_tiled_backing_store_scroll_full_offset_set_internal(priv, x, y);
}
-Eina_Bool ewk_tiled_backing_store_scroll_full_offset_add(Evas_Object* ewkBackingStore, Evas_Coord deltaX, Evas_Coord deltaY)
+bool ewk_tiled_backing_store_scroll_full_offset_add(Evas_Object* ewkBackingStore, Evas_Coord deltaX, Evas_Coord deltaY)
{
DBG("ewkBackingStore=%p, deltaX=%d, deltaY=%d", ewkBackingStore, deltaX, deltaY);
@@ -1467,11 +1389,10 @@ Eina_Bool ewk_tiled_backing_store_scroll_full_offset_add(Evas_Object* ewkBacking
if (!deltaX && !deltaY)
return true;
- return _ewk_tiled_backing_store_scroll_full_offset_set_internal
- (priv, priv->view.offset.current.x + deltaX, priv->view.offset.current.y + deltaY);
+ return _ewk_tiled_backing_store_scroll_full_offset_set_internal(priv, priv->view.offset.current.x + deltaX, priv->view.offset.current.y + deltaY);
}
-static Eina_Bool _ewk_tiled_backing_store_zoom_set_internal(Ewk_Tiled_Backing_Store_Data* priv, float* zoom, Evas_Coord currentX, Evas_Coord currentY, Evas_Coord* offsetX, Evas_Coord* offsetY)
+static bool _ewk_tiled_backing_store_zoom_set_internal(Ewk_Tiled_Backing_Store_Data* priv, float* zoom, Evas_Coord currentX, Evas_Coord currentY, Evas_Coord* offsetX, Evas_Coord* offsetY)
{
*offsetX = priv->view.offset.current.x;
*offsetY = priv->view.offset.current.y;
@@ -1479,16 +1400,16 @@ static Eina_Bool _ewk_tiled_backing_store_zoom_set_internal(Ewk_Tiled_Backing_St
if (fabsf(priv->view.tile.zoom - *zoom) < zoomStepMinimum) {
DBG("ignored as zoom difference is < %f: %f",
(double)zoomStepMinimum, fabsf(priv->view.tile.zoom - *zoom));
+
return true;
}
_ewk_tiled_backing_store_pre_render_request_flush(priv);
- Evas_Coord tileWidth, tileHeight;
*zoom = ROUNDED_ZOOM(priv->view.tile.width, *zoom);
- tileWidth = priv->view.tile.width;
- tileHeight = priv->view.tile.height;
+ Evas_Coord tileWidth = priv->view.tile.width;
+ Evas_Coord tileHeight = priv->view.tile.height;
float scale = *zoom / priv->view.tile.zoom;
@@ -1508,8 +1429,6 @@ static Eina_Bool _ewk_tiled_backing_store_zoom_set_internal(Ewk_Tiled_Backing_St
priv->view.offset.base.y = 0;
return true;
}
- Eina_Inlist** iterator, **iteratorEnd;
- Ewk_Tiled_Backing_Store_Item* item;
Evas_Coord newX = currentX + (priv->view.offset.current.x - currentX) * scale;
Evas_Coord newY = currentY + (priv->view.offset.current.y - currentY) * scale;
@@ -1546,23 +1465,19 @@ static Eina_Bool _ewk_tiled_backing_store_zoom_set_internal(Ewk_Tiled_Backing_St
*offsetX = priv->view.offset.current.x;
*offsetY = priv->view.offset.current.y;
- evas_object_move(
- priv->contentsClipper,
- newX + priv->view.x,
- newY + priv->view.y);
+ evas_object_move(priv->contentsClipper, newX + priv->view.x, newY + priv->view.y);
_ewk_tiled_backing_store_fill_renderers(priv);
Evas_Coord tilePositionY = priv->view.offset.base.y + priv->view.y;
Evas_Coord baseTilePositionX = priv->view.x + priv->view.offset.base.x;
- iterator = priv->view.items;
- iteratorEnd = iterator + priv->view.rows;
-
- for (; iterator < iteratorEnd; iterator++) {
+ Eina_Inlist** it = priv->view.items;
+ Eina_Inlist** end = it + priv->view.rows;
+ for (; it < end; ++it) {
Evas_Coord tilePositionX = baseTilePositionX;
- Eina_Inlist* lst = *iterator;
-
+ Eina_Inlist* lst = *it;
+ Ewk_Tiled_Backing_Store_Item* item;
EINA_INLIST_FOREACH(lst, item) {
_ewk_tiled_backing_store_item_move(item, tilePositionX, tilePositionY);
_ewk_tiled_backing_store_item_resize(item, tileWidth, tileHeight);
@@ -1574,7 +1489,7 @@ static Eina_Bool _ewk_tiled_backing_store_zoom_set_internal(Ewk_Tiled_Backing_St
return true;
}
-Eina_Bool ewk_tiled_backing_store_zoom_set(Evas_Object* ewkBackingStore, float* zoom, Evas_Coord currentX, Evas_Coord currentY, Evas_Coord* offsetX, Evas_Coord* offsetY)
+bool ewk_tiled_backing_store_zoom_set(Evas_Object* ewkBackingStore, float* zoom, Evas_Coord currentX, Evas_Coord currentY, Evas_Coord* offsetX, Evas_Coord* offsetY)
{
DBG("ewkBackingStore=%p, zoom=%f", ewkBackingStore, *zoom);
@@ -1583,22 +1498,20 @@ Eina_Bool ewk_tiled_backing_store_zoom_set(Evas_Object* ewkBackingStore, float*
return _ewk_tiled_backing_store_zoom_set_internal(priv, zoom, currentX, currentY, offsetX, offsetY);
}
-Eina_Bool ewk_tiled_backing_store_zoom_weak_set(Evas_Object* ewkBackingStore, float zoom, Evas_Coord currentX, Evas_Coord currentY)
+bool ewk_tiled_backing_store_zoom_weak_set(Evas_Object* ewkBackingStore, float zoom, Evas_Coord currentX, Evas_Coord currentY)
{
DBG("ewkBackingStore=%p, zoom=%f", ewkBackingStore, zoom);
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv, false);
if (!priv->view.width || !priv->view.height)
return false;
- Eina_Inlist** iterator, ** iteratorEnd;
- Ewk_Tiled_Backing_Store_Item* item;
- Evas_Coord tileWidth, tileHeight;
- Eina_Bool reCalculate = false;
+
+ bool reCalculate = false;
float scale = zoom / priv->view.tile.zoom;
- tileWidth = TILE_SIZE_AT_ZOOM(priv->view.tile.width, scale);
+ Evas_Coord tileWidth = TILE_SIZE_AT_ZOOM(priv->view.tile.width, scale);
scale = TILE_ZOOM_AT_SIZE(tileWidth, priv->view.tile.width);
- tileHeight = TILE_SIZE_AT_ZOOM(priv->view.tile.height, scale);
+ Evas_Coord tileHeight = TILE_SIZE_AT_ZOOM(priv->view.tile.height, scale);
zoom = scale * priv->view.tile.zoom;
Evas_Coord modelWidth = priv->model.width * scale;
@@ -1606,8 +1519,8 @@ Eina_Bool ewk_tiled_backing_store_zoom_weak_set(Evas_Object* ewkBackingStore, fl
evas_object_resize(priv->contentsClipper, modelWidth, modelHeight);
- int vrows = static_cast<int>(ceil(priv->view.height /static_cast<float>(tileHeight)) + 1);
- int vcols = static_cast<int>(ceil(priv->view.width / static_cast<float>(tileWidth)) + 1);
+ unsigned long vrows = static_cast<unsigned long>(ceil(priv->view.height /static_cast<float>(tileHeight)) + 1);
+ unsigned long vcols = static_cast<unsigned long>(ceil(priv->view.width / static_cast<float>(tileWidth)) + 1);
Evas_Coord newX = currentX + (priv->view.offset.current.x - currentX) * scale;
Evas_Coord newY = currentY + (priv->view.offset.current.y - currentY) * scale;
Evas_Coord baseX = newX % tileWidth;
@@ -1635,17 +1548,14 @@ Eina_Bool ewk_tiled_backing_store_zoom_weak_set(Evas_Object* ewkBackingStore, fl
Evas_Coord baseTilePositionX = baseX + priv->view.x;
Evas_Coord tilePositionY = baseY + priv->view.y;
- evas_object_move(priv->contentsClipper,
- newX + priv->view.x,
- newY + priv->view.y);
+ evas_object_move(priv->contentsClipper, newX + priv->view.x, newY + priv->view.y);
- iterator = priv->view.items;
- iteratorEnd = iterator + priv->view.rows;
-
- for (; iterator < iteratorEnd; iterator++) {
+ Eina_Inlist** it = priv->view.items;
+ Eina_Inlist** end = it + priv->view.rows;
+ for (; it < end; ++it) {
Evas_Coord tilePositionX = baseTilePositionX;
- Eina_Inlist* list = *iterator;
-
+ Eina_Inlist* list = *it;
+ Ewk_Tiled_Backing_Store_Item* item;
EINA_INLIST_FOREACH(list, item) {
_ewk_tiled_backing_store_item_move(item, tilePositionX, tilePositionY);
_ewk_tiled_backing_store_item_resize(item, tileWidth, tileHeight);
@@ -1660,8 +1570,7 @@ Eina_Bool ewk_tiled_backing_store_zoom_weak_set(Evas_Object* ewkBackingStore, fl
void ewk_tiled_backing_store_fix_offsets(Evas_Object* ewkBackingStore, Evas_Coord width, Evas_Coord height)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
- Eina_Inlist** iterator, **iteratorEnd;
- Ewk_Tiled_Backing_Store_Item* item;
+
Evas_Coord newX = priv->view.offset.current.x;
Evas_Coord newY = priv->view.offset.current.y;
Evas_Coord baseX = priv->view.offset.base.x;
@@ -1697,20 +1606,17 @@ void ewk_tiled_backing_store_fix_offsets(Evas_Object* ewkBackingStore, Evas_Coor
priv->view.offset.old.y = newY;
priv->view.offset.base.x = baseX;
priv->view.offset.base.y = baseY;
- evas_object_move(priv->contentsClipper,
- newX + priv->view.x,
- newY + priv->view.y);
+ evas_object_move(priv->contentsClipper, newX + priv->view.x, newY + priv->view.y);
Evas_Coord tilePositionY = priv->view.offset.base.y + priv->view.y;
Evas_Coord baseTilePositionX = priv->view.x + priv->view.offset.base.x;
- iterator = priv->view.items;
- iteratorEnd = iterator + priv->view.rows;
-
- for (; iterator < iteratorEnd; iterator++) {
+ Eina_Inlist** it = priv->view.items;
+ Eina_Inlist** end = it + priv->view.rows;
+ for (; it < end; ++it) {
Evas_Coord tilePositionX = baseTilePositionX;
- Eina_Inlist* lst = *iterator;
-
+ Eina_Inlist* lst = *it;
+ Ewk_Tiled_Backing_Store_Item* item;
EINA_INLIST_FOREACH(lst, item) {
_ewk_tiled_backing_store_item_move(item, tilePositionX, tilePositionY);
_ewk_tiled_backing_store_item_resize(item, tileWidth, tileHeight);
@@ -1720,53 +1626,50 @@ void ewk_tiled_backing_store_fix_offsets(Evas_Object* ewkBackingStore, Evas_Coor
}
}
-void ewk_tiled_backing_store_zoom_weak_smooth_scale_set(Evas_Object* ewkBackingStore, Eina_Bool smoothScale)
+void ewk_tiled_backing_store_zoom_weak_smooth_scale_set(Evas_Object* ewkBackingStore, bool smoothScale)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
- Eina_Inlist** iterator, **iteratorEnd;
- iterator = priv->view.items;
- iteratorEnd = iterator + priv->view.rows;
+ Eina_Inlist** it = priv->view.items;
+ Eina_Inlist** end = it + priv->view.rows;
priv->view.tile.zoomWeakSmoothScale = smoothScale;
- for (; iterator< iteratorEnd; iterator++) {
+ for (; it< end; ++it) {
Ewk_Tiled_Backing_Store_Item* item;
- EINA_INLIST_FOREACH(*iterator, item)
+ EINA_INLIST_FOREACH(*it, item)
if (item->tile)
- _ewk_tiled_backing_store_item_smooth_scale_set
- (item, smoothScale);
+ _ewk_tiled_backing_store_item_smooth_scale_set(item, smoothScale);
}
}
-void ewk_tiled_backing_store_alpha_set(Evas_Object* ewkBackingStore, Eina_Bool hasAlpha)
+void ewk_tiled_backing_store_alpha_set(Evas_Object* ewkBackingStore, bool hasAlpha)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
priv->view.tile.hasAlpha = hasAlpha;
}
-Eina_Bool ewk_tiled_backing_store_update(Evas_Object* ewkBackingStore, const Eina_Rectangle* update)
+bool ewk_tiled_backing_store_update(Evas_Object* ewkBackingStore, const Eina_Rectangle* update)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv, false);
if (priv->render.disabled)
return false;
- return ewk_tile_matrix_update(priv->model.matrix, update,
- priv->view.tile.zoom);
+ return ewk_tile_matrix_update(priv->model.matrix, update, priv->view.tile.zoom);
}
void ewk_tiled_backing_store_updates_process_pre_set(Evas_Object* ewkBackingStore, void* (*callback)(void* data, Evas_Object *ewkBackingStore), const void* data)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
priv->process.preCallback = callback;
- priv->process.preData = (void*)data;
+ priv->process.preData = const_cast<void*>(data);
}
void ewk_tiled_backing_store_updates_process_post_set(Evas_Object* ewkBackingStore, void* (*callback)(void* data, void* preData, Evas_Object *ewkBackingStore), const void* data)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
priv->process.postCallback = callback;
- priv->process.postData = (void*)data;
+ priv->process.postData = const_cast<void*>(data);
}
void ewk_tiled_backing_store_updates_process(Evas_Object* ewkBackingStore)
@@ -1797,7 +1700,7 @@ void ewk_tiled_backing_store_contents_resize(Evas_Object* ewkBackingStore, Evas_
_ewk_tiled_backing_store_changed(priv);
}
-void ewk_tiled_backing_store_disabled_update_set(Evas_Object* ewkBackingStore, Eina_Bool value)
+void ewk_tiled_backing_store_disabled_update_set(Evas_Object* ewkBackingStore, bool value)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
@@ -1808,7 +1711,6 @@ void ewk_tiled_backing_store_disabled_update_set(Evas_Object* ewkBackingStore, E
void ewk_tiled_backing_store_flush(Evas_Object* ewkBackingStore)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
- Ewk_Tile_Unused_Cache* tileUnusedCache = 0;
priv->view.offset.current.x = 0;
priv->view.offset.current.y = 0;
@@ -1833,7 +1735,7 @@ void ewk_tiled_backing_store_flush(Evas_Object* ewkBackingStore)
_ewk_tiled_backing_store_pre_render_request_flush(priv);
_ewk_tiled_backing_store_tile_dissociate_all(priv);
- tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
+ Ewk_Tile_Unused_Cache* tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
ewk_tile_unused_cache_clear(tileUnusedCache);
#ifdef DEBUG_MEM_LEAKS
@@ -1842,7 +1744,7 @@ void ewk_tiled_backing_store_flush(Evas_Object* ewkBackingStore)
#endif
}
-Eina_Bool ewk_tiled_backing_store_pre_render_tile_add(Evas_Object* ewkBackingStore, int column, int row, float zoom)
+bool ewk_tiled_backing_store_pre_render_tile_add(Evas_Object* ewkBackingStore, unsigned long column, unsigned long row, float zoom)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv, false);
@@ -1855,7 +1757,7 @@ Eina_Bool ewk_tiled_backing_store_pre_render_tile_add(Evas_Object* ewkBackingSto
return true;
}
-Eina_Bool ewk_tiled_backing_store_pre_render_spiral_queue(Evas_Object* ewkBackingStore, Eina_Rectangle* viewRect, Eina_Rectangle* renderRect, int maxMemory, float zoom)
+bool ewk_tiled_backing_store_pre_render_spiral_queue(Evas_Object* ewkBackingStore, Eina_Rectangle* viewRect, Eina_Rectangle* renderRect, int maxMemory, float zoom)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv, false);
EINA_SAFETY_ON_NULL_RETURN_VAL(viewRect, false);
@@ -1865,34 +1767,31 @@ Eina_Bool ewk_tiled_backing_store_pre_render_spiral_queue(Evas_Object* ewkBackin
const int tileHeight = priv->view.tile.height;
Eina_Tile_Grid_Slicer viewSlicer;
- Eina_Tile_Grid_Slicer renderSlicer;
-
- if (!eina_tile_grid_slicer_setup(&viewSlicer,
- viewRect->x, viewRect->y, viewRect->w, viewRect->h, tileWidth, tileHeight)) {
+ if (!eina_tile_grid_slicer_setup(&viewSlicer, viewRect->x, viewRect->y, viewRect->w, viewRect->h, tileWidth, tileHeight)) {
ERR("could not setup grid viewSlicer for %d,%d+%dx%d tile=%dx%d", viewRect->x, viewRect->y, viewRect->w, viewRect->h, tileWidth, tileHeight);
return false;
}
- if (!eina_tile_grid_slicer_setup(&renderSlicer,
- renderRect->x, renderRect->y, renderRect->w, renderRect->h, tileWidth, tileHeight)) {
+ Eina_Tile_Grid_Slicer renderSlicer;
+ if (!eina_tile_grid_slicer_setup(&renderSlicer, renderRect->x, renderRect->y, renderRect->w, renderRect->h, tileWidth, tileHeight)) {
ERR("could not setup grid RenderSlicer for %d,%d+%dx%d tile=%dx%d", renderRect->y, renderRect->y, renderRect->w, renderRect->h, tileWidth, tileHeight);
return false;
}
// set limits of the loop.
int memoryLimits = maxMemory / (EWK_ARGB_BYTES_SIZE * tileWidth * tileHeight);
- const int maxViewSideLength = std::max(viewSlicer.col2 - viewSlicer.col1, viewSlicer.row2 - viewSlicer.row1);
- const int maxRenderSideLength = std::max(renderSlicer.col2 - renderSlicer.col1, renderSlicer.row2 - renderSlicer.row1);
- const int maxLoopCount = maxViewSideLength + maxRenderSideLength;
+ const unsigned long maxViewSideLength = std::max(viewSlicer.col2 - viewSlicer.col1, viewSlicer.row2 - viewSlicer.row1);
+ const unsigned long maxRenderSideLength = std::max(renderSlicer.col2 - renderSlicer.col1, renderSlicer.row2 - renderSlicer.row1);
+ const unsigned long maxLoopCount = maxViewSideLength + maxRenderSideLength;
// spire starts from the center of the view area.
- int centerColumn = (viewSlicer.col1 + viewSlicer.col2) / 2;
- int centerRow = (viewSlicer.row1 + viewSlicer.row2) / 2;
+ unsigned long centerColumn = (viewSlicer.col1 + viewSlicer.col2) / 2;
+ unsigned long centerRow = (viewSlicer.row1 + viewSlicer.row2) / 2;
- int step = 1;
- const int squareSide = 4;
- for (int loop = 0; loop < maxLoopCount; loop++) {
- for (int i = 1; i < step * squareSide + 1; i++) {
+ unsigned long step = 1;
+ const unsigned squareSide = 4;
+ for (unsigned loop = 0; loop < maxLoopCount; ++loop) {
+ for (unsigned long i = 1; i < step * squareSide + 1; ++i) {
if (memoryLimits <= 0)
goto memoryLimitsReached;
/*
@@ -1908,37 +1807,37 @@ Eina_Bool ewk_tiled_backing_store_pre_render_spiral_queue(Evas_Object* ewkBackin
333333
*/
if (i > 0 && i <= step)
- centerColumn++; // move left.
+ ++centerColumn; // move left.
else if (i > step && i <= step * 2)
- centerRow++; // move down.
+ ++centerRow; // move down.
else if (i > step * 2 && i <= step * 3)
- centerColumn--; // move right.
+ --centerColumn; // move right.
else if (i > step * 3 && i <= step * 4)
- centerRow--; // move up.
+ --centerRow; // move up.
else
ERR("ERROR : out of bounds\r\n");
// skip in view port area.
- if (static_cast<int>(viewSlicer.col1) < centerColumn
- && static_cast<int>(viewSlicer.col2) > centerColumn
- && static_cast<int>(viewSlicer.row1) < centerRow
- && static_cast<int>(viewSlicer.row2) > centerRow)
+ if (viewSlicer.col1 < centerColumn
+ && viewSlicer.col2 > centerColumn
+ && viewSlicer.row1 < centerRow
+ && viewSlicer.row2 > centerRow)
continue;
- if (static_cast<int>(renderSlicer.col1) <= centerColumn
- && static_cast<int>(renderSlicer.col2) >= centerColumn
- && static_cast<int>(renderSlicer.row1) <= centerRow
- && static_cast<int>(renderSlicer.row2) >= centerRow) {
+ if (renderSlicer.col1 <= centerColumn
+ && renderSlicer.col2 >= centerColumn
+ && renderSlicer.row1 <= centerRow
+ && renderSlicer.row2 >= centerRow) {
if (!ewk_tiled_backing_store_pre_render_tile_add(ewkBackingStore, centerColumn, centerRow, zoom))
continue;
- DBG("R>[%d %d] ", centerColumn, centerRow);
- memoryLimits--;
+ DBG("R>[%lu %lu] ", centerColumn, centerRow);
+ --memoryLimits;
}
}
- centerRow--;
- centerColumn--;
- step = step + 2;
+ --centerRow;
+ --centerColumn;
+ step += 2;
}
memoryLimitsReached:
@@ -1947,24 +1846,22 @@ memoryLimitsReached:
return true;
}
-Eina_Bool ewk_tiled_backing_store_pre_render_region(Evas_Object* ewkBackingStore, Evas_Coord x, Evas_Coord y, Evas_Coord width, Evas_Coord height, float zoom)
+bool ewk_tiled_backing_store_pre_render_region(Evas_Object* ewkBackingStore, Evas_Coord x, Evas_Coord y, Evas_Coord width, Evas_Coord height, float zoom)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv, false);
- Eina_Tile_Grid_Slicer slicer;
- const Eina_Tile_Grid_Info* gridInfo;
- Evas_Coord tileWidth, tileHeight;
- Ewk_Tile_Unused_Cache* tileUnusedCache;
- tileWidth = priv->view.tile.width;
- tileHeight = priv->view.tile.height;
+ Evas_Coord tileWidth = priv->view.tile.width;
+ Evas_Coord tileHeight = priv->view.tile.height;
zoom = ROUNDED_ZOOM(priv->view.tile.width, zoom);
+ Eina_Tile_Grid_Slicer slicer;
if (!eina_tile_grid_slicer_setup(&slicer, x, y, width, height, tileWidth, tileHeight)) {
ERR("could not setup grid slicer for %d,%d+%dx%d tile=%dx%d",
x, y, width, height, tileWidth, tileHeight);
return false;
}
+ const Eina_Tile_Grid_Info* gridInfo;
while (eina_tile_grid_slicer_next(&slicer, &gridInfo)) {
const unsigned long column = gridInfo->col;
const unsigned long row = gridInfo->row;
@@ -1974,42 +1871,37 @@ Eina_Bool ewk_tiled_backing_store_pre_render_region(Evas_Object* ewkBackingStore
_ewk_tiled_backing_store_item_process_idler_start(priv);
- tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
+ Ewk_Tile_Unused_Cache* tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
ewk_tile_unused_cache_lock_area(tileUnusedCache, x, y, width, height, zoom);
+
return true;
}
-Eina_Bool ewk_tiled_backing_store_pre_render_relative_radius(Evas_Object* ewkBackingStore, unsigned int n, float zoom)
+bool ewk_tiled_backing_store_pre_render_relative_radius(Evas_Object* ewkBackingStore, unsigned int n, float zoom)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv, false);
- unsigned long startRow, endRow, startCol, endCol, i, j, width, height;
- Ewk_Tile_Unused_Cache* tileUnusedCache;
- INF("priv->model.base.row =%ld, n=%u priv->view.rows=%lu",
- priv->model.base.row, n, priv->view.rows);
- startRow = (long)priv->model.base.row - n;
- startCol = (long)priv->model.base.column - n;
- endRow = std::min(priv->model.current.rows - 1,
- priv->model.base.row + priv->view.rows + n - 1);
- endCol = std::min(priv->model.current.columns - 1,
- priv->model.base.column + priv->view.columns + n - 1);
+ INF("priv->model.base.row =%ld, n=%u priv->view.rows=%lu", priv->model.base.row, n, priv->view.rows);
+ unsigned long startRow = priv->model.base.row - n;
+ unsigned long startCol = priv->model.base.column - n;
+ unsigned long endRow = std::min(priv->model.current.rows - 1, priv->model.base.row + priv->view.rows + n - 1);
+ unsigned long endCol = std::min(priv->model.current.columns - 1, priv->model.base.column + priv->view.columns + n - 1);
- INF("startRow=%lu, endRow=%lu, startCol=%lu, endCol=%lu",
- startRow, endRow, startCol, endCol);
+ INF("startRow=%lu, endRow=%lu, startCol=%lu, endCol=%lu", startRow, endRow, startCol, endCol);
zoom = ROUNDED_ZOOM(priv->view.tile.width, zoom);
- for (i = startRow; i <= endRow; i++)
- for (j = startCol; j <= endCol; j++)
+ for (unsigned long i = startRow; i <= endRow; ++i)
+ for (unsigned long j = startCol; j <= endCol; ++j)
if (!_ewk_tiled_backing_store_pre_render_request_add(priv, j, i, zoom))
goto start_processing;
start_processing:
_ewk_tiled_backing_store_item_process_idler_start(priv);
- tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
- height = (endRow - startRow + 1) * TILE_SIZE_AT_ZOOM(priv->view.tile.height, zoom);
- width = (endCol - startCol + 1) * TILE_SIZE_AT_ZOOM(priv->view.tile.width, zoom);
+ Ewk_Tile_Unused_Cache* tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
+ unsigned long height = (endRow - startRow + 1) * TILE_SIZE_AT_ZOOM(priv->view.tile.height, zoom);
+ unsigned long width = (endCol - startCol + 1) * TILE_SIZE_AT_ZOOM(priv->view.tile.width, zoom);
ewk_tile_unused_cache_lock_area(tileUnusedCache,
startCol * TILE_SIZE_AT_ZOOM(priv->view.tile.width, zoom),
startRow * TILE_SIZE_AT_ZOOM(priv->view.tile.height, zoom), width, height, zoom);
@@ -2020,23 +1912,24 @@ start_processing:
void ewk_tiled_backing_store_pre_render_cancel(Evas_Object* ewkBackingStore)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv);
- Ewk_Tile_Unused_Cache* tileUnusedCache;
_ewk_tiled_backing_store_pre_render_request_clear(priv);
- tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
+ Ewk_Tile_Unused_Cache* tileUnusedCache = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
ewk_tile_unused_cache_unlock_area(tileUnusedCache);
}
-Eina_Bool ewk_tiled_backing_store_disable_render(Evas_Object* ewkBackingStore)
+bool ewk_tiled_backing_store_disable_render(Evas_Object* ewkBackingStore)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv, false);
+
return _ewk_tiled_backing_store_disable_render(priv);
}
-Eina_Bool ewk_tiled_backing_store_enable_render(Evas_Object* ewkBackingStore)
+bool ewk_tiled_backing_store_enable_render(Evas_Object* ewkBackingStore)
{
PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv, false);
_ewk_tiled_backing_store_changed(priv);
+
return _ewk_tiled_backing_store_enable_render(priv);
}
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_backing_store_private.h b/Source/WebKit/efl/ewk/ewk_tiled_backing_store_private.h
index 2aa0b1d00..15362d00d 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_backing_store_private.h
+++ b/Source/WebKit/efl/ewk/ewk_tiled_backing_store_private.h
@@ -33,10 +33,10 @@
*/
#undef DEBUG_MEM_LEAKS
-const int defaultTileWidth = 256;
-const int defaultTileHeigth = 256;
+static const int defaultTileWidth = 256;
+static const int defaultTileHeigth = 256;
-const float zoomStepMinimum = 0.01;
+static const float zoomStepMinimum = 0.01;
#define TILE_SIZE_AT_ZOOM(SIZE, ZOOM) ((int)roundf((SIZE) * (ZOOM)))
#define TILE_ZOOM_AT_SIZE(SIZE, ORIG_TILE) ((float)(SIZE) / (float)(ORIG_TILE))
@@ -55,11 +55,11 @@ struct _Ewk_Tile_Stats {
unsigned int misses; /**< number of times it became dirty but not
* repainted at all since it was not visible.
*/
- Eina_Bool full_update : 1; /**< tile requires full size update */
+ bool full_update : 1; /**< tile requires full size update */
};
struct _Ewk_Tile {
- Eina_Tiler *updates; /**< updated/dirty areas */
+ Eina_Tiler* updates; /**< updated/dirty areas */
Ewk_Tile_Stats stats; /**< tile usage statistics */
unsigned long column, row; /**< tile tile position */
Evas_Coord x, y; /**< tile coordinate position */
@@ -73,42 +73,42 @@ struct _Ewk_Tile {
* alignement!
*/
int visible; /**< visibility counter of this tile */
- Evas_Object *image; /**< Evas Image, the tile to be rendered */
+ Evas_Object* image; /**< Evas Image, the tile to be rendered */
};
/* view */
-Evas_Object *ewk_tiled_backing_store_add(Evas *e);
-
-void ewk_tiled_backing_store_render_cb_set(Evas_Object *o, Eina_Bool (*cb)(void *data, Ewk_Tile *t, const Eina_Rectangle *area), const void *data);
-
-Eina_Bool ewk_tiled_backing_store_scroll_full_offset_set(Evas_Object *o, Evas_Coord x, Evas_Coord y);
-Eina_Bool ewk_tiled_backing_store_scroll_full_offset_add(Evas_Object *o, Evas_Coord dx, Evas_Coord dy);
-Eina_Bool ewk_tiled_backing_store_scroll_inner_offset_add(Evas_Object *o, Evas_Coord dx, Evas_Coord dy, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
-
-Eina_Bool ewk_tiled_backing_store_zoom_set(Evas_Object *o, float *zoom, Evas_Coord cx, Evas_Coord cy, Evas_Coord *offx, Evas_Coord *offy);
-Eina_Bool ewk_tiled_backing_store_zoom_weak_set(Evas_Object *o, float zoom, Evas_Coord cx, Evas_Coord cy);
-void ewk_tiled_backing_store_fix_offsets(Evas_Object *o, Evas_Coord w, Evas_Coord h);
-void ewk_tiled_backing_store_zoom_weak_smooth_scale_set(Evas_Object *o, Eina_Bool smooth_scale);
-void ewk_tiled_backing_store_alpha_set(Evas_Object *o, Eina_Bool has_alpha);
-Eina_Bool ewk_tiled_backing_store_update(Evas_Object *o, const Eina_Rectangle *update);
-void ewk_tiled_backing_store_updates_process_pre_set(Evas_Object *o, void*(*cb)(void *data, Evas_Object *o), const void *data);
-void ewk_tiled_backing_store_updates_process_post_set(Evas_Object *o, void*(*cb)(void *data, void *pre_data, Evas_Object *o), const void *data);
-void ewk_tiled_backing_store_updates_process(Evas_Object *o);
-void ewk_tiled_backing_store_updates_clear(Evas_Object *o);
-void ewk_tiled_backing_store_contents_resize(Evas_Object *o, Evas_Coord width, Evas_Coord height);
-void ewk_tiled_backing_store_disabled_update_set(Evas_Object *o, Eina_Bool value);
-void ewk_tiled_backing_store_flush(Evas_Object *o);
-void ewk_tiled_backing_store_enable_scale_set(Evas_Object *o, Eina_Bool value);
-
-Ewk_Tile_Unused_Cache *ewk_tiled_backing_store_tile_unused_cache_get(const Evas_Object *o);
-void ewk_tiled_backing_store_tile_unused_cache_set(Evas_Object *o, Ewk_Tile_Unused_Cache *tuc);
-
-Eina_Bool ewk_tiled_backing_store_pre_render_region(Evas_Object *o, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom);
-Eina_Bool ewk_tiled_backing_store_pre_render_relative_radius(Evas_Object *o, unsigned int n, float zoom);
-Eina_Bool ewk_tiled_backing_store_pre_render_spiral_queue(Evas_Object *o, Eina_Rectangle* view_rect, Eina_Rectangle *render_rect, int max_memory, float zoom);
-void ewk_tiled_backing_store_pre_render_cancel(Evas_Object *o);
-
-Eina_Bool ewk_tiled_backing_store_disable_render(Evas_Object *o);
-Eina_Bool ewk_tiled_backing_store_enable_render(Evas_Object *o);
+Evas_Object* ewk_tiled_backing_store_add(Evas* e);
+
+void ewk_tiled_backing_store_render_cb_set(Evas_Object* o, bool (*cb)(void* data, Ewk_Tile* t, const Eina_Rectangle* area), const void* data);
+
+bool ewk_tiled_backing_store_scroll_full_offset_set(Evas_Object* o, Evas_Coord x, Evas_Coord y);
+bool ewk_tiled_backing_store_scroll_full_offset_add(Evas_Object* o, Evas_Coord dx, Evas_Coord dy);
+bool ewk_tiled_backing_store_scroll_inner_offset_add(Evas_Object* o, Evas_Coord dx, Evas_Coord dy, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
+
+bool ewk_tiled_backing_store_zoom_set(Evas_Object* o, float* zoom, Evas_Coord cx, Evas_Coord cy, Evas_Coord* offx, Evas_Coord* offy);
+bool ewk_tiled_backing_store_zoom_weak_set(Evas_Object* o, float zoom, Evas_Coord cx, Evas_Coord cy);
+void ewk_tiled_backing_store_fix_offsets(Evas_Object* o, Evas_Coord w, Evas_Coord h);
+void ewk_tiled_backing_store_zoom_weak_smooth_scale_set(Evas_Object* o, bool smooth_scale);
+void ewk_tiled_backing_store_alpha_set(Evas_Object* o, bool has_alpha);
+bool ewk_tiled_backing_store_update(Evas_Object* o, const Eina_Rectangle* update);
+void ewk_tiled_backing_store_updates_process_pre_set(Evas_Object* o, void* (*cb)(void* data, Evas_Object* o), const void* data);
+void ewk_tiled_backing_store_updates_process_post_set(Evas_Object* o, void* (*cb)(void* data, void* pre_data, Evas_Object* o), const void* data);
+void ewk_tiled_backing_store_updates_process(Evas_Object* o);
+void ewk_tiled_backing_store_updates_clear(Evas_Object* o);
+void ewk_tiled_backing_store_contents_resize(Evas_Object* o, Evas_Coord width, Evas_Coord height);
+void ewk_tiled_backing_store_disabled_update_set(Evas_Object* o, bool value);
+void ewk_tiled_backing_store_flush(Evas_Object* o);
+void ewk_tiled_backing_store_enable_scale_set(Evas_Object* o, bool value);
+
+Ewk_Tile_Unused_Cache* ewk_tiled_backing_store_tile_unused_cache_get(const Evas_Object* o);
+void ewk_tiled_backing_store_tile_unused_cache_set(Evas_Object* o, Ewk_Tile_Unused_Cache* tuc);
+
+bool ewk_tiled_backing_store_pre_render_region(Evas_Object* o, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom);
+bool ewk_tiled_backing_store_pre_render_relative_radius(Evas_Object* o, unsigned int n, float zoom);
+bool ewk_tiled_backing_store_pre_render_spiral_queue(Evas_Object* o, Eina_Rectangle* view_rect, Eina_Rectangle* render_rect, int max_memory, float zoom);
+void ewk_tiled_backing_store_pre_render_cancel(Evas_Object* o);
+
+bool ewk_tiled_backing_store_disable_render(Evas_Object* o);
+bool ewk_tiled_backing_store_enable_render(Evas_Object* o);
#endif // ewk_tiled_backing_store_h
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp b/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp
index f93764fe5..a1c029db3 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp
+++ b/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp
@@ -35,15 +35,13 @@
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
-struct _Ewk_Tile_Matrix_Entry {
+struct Ewk_Tile_Matrix_Entry {
EINA_INLIST;
float zoom;
unsigned long count;
Eina_Matrixsparse* matrix;
};
-typedef struct _Ewk_Tile_Matrix_Entry Ewk_Tile_Matrix_Entry;
-
struct _Ewk_Tile_Matrix {
Eina_Matrixsparse* matrix;
Eina_Inlist* matrices;
@@ -78,11 +76,11 @@ static uint64_t bytes_leaked = 0;
static Ewk_Tile_Matrix_Entry* ewk_tile_matrix_entry_get(Ewk_Tile_Matrix* tileMatrix, float zoom)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(tileMatrix, 0);
- Ewk_Tile_Matrix_Entry* iterator;
- EINA_INLIST_FOREACH(tileMatrix->matrices, iterator) {
- if (iterator->zoom == zoom)
- return iterator;
+ Ewk_Tile_Matrix_Entry* it;
+ EINA_INLIST_FOREACH(tileMatrix->matrices, it) {
+ if (it->zoom == zoom)
+ return it;
}
return 0;
@@ -105,23 +103,21 @@ static void _ewk_tile_matrix_cell_free(void* userData, void* cellData)
if (tile->visible)
ERR("freeing cell that is visible, leaking tile %p", tile);
else {
- if (!ewk_tile_unused_cache_tile_get(tileMatrix->tileUnusedCache, tile))
- ERR("tile %p was not in cache %p? leaking...", tile, tileMatrix->tileUnusedCache);
- else {
- Ewk_Tile_Matrix_Entry* entry;
+ if (ewk_tile_unused_cache_tile_get(tileMatrix->tileUnusedCache, tile)) {
DBG("tile cell does not exist anymore, free it %p", tile);
#ifdef DEBUG_MEM_LEAKS
tileMatrix->stats.bytes.freed += tile->bytes;
tileMatrix->stats.tiles.freed++;
#endif
- entry = ewk_tile_matrix_entry_get(tileMatrix, tile->zoom);
+ Ewk_Tile_Matrix_Entry* entry = ewk_tile_matrix_entry_get(tileMatrix, tile->zoom);
if (!entry)
ERR("can't find matrix for zoom %0.3f", tile->zoom);
else
- entry->count--;
+ --entry->count;
ewk_tile_free(tile);
- }
+ } else
+ ERR("tile %p was not in cache %p? leaking...", tile, tileMatrix->tileUnusedCache);
}
ewk_tile_unused_cache_thaw(tileMatrix->tileUnusedCache);
@@ -131,17 +127,15 @@ static void _ewk_tile_matrix_cell_free(void* userData, void* cellData)
static void _ewk_tile_matrix_tile_free(void* data, Ewk_Tile* tile)
{
Ewk_Tile_Matrix* tileMatrix = static_cast<Ewk_Tile_Matrix*>(data);
- Ewk_Tile_Matrix_Entry* entry;
- Eina_Matrixsparse_Cell* cell;
- entry = ewk_tile_matrix_entry_get(tileMatrix, tile->zoom);
+ Ewk_Tile_Matrix_Entry* entry = ewk_tile_matrix_entry_get(tileMatrix, tile->zoom);
if (!entry) {
ERR("removing tile %p that was not in any matrix? Leaking...", tile);
return;
}
+ Eina_Matrixsparse_Cell* cell;
if (!eina_matrixsparse_cell_idx_get(entry->matrix, tile->row, tile->column, &cell)) {
-
ERR("removing tile %p that was not in the matrix? Leaking...", tile);
return;
}
@@ -169,7 +163,7 @@ static void _ewk_tile_matrix_tile_free(void* data, Ewk_Tile* tile)
tileMatrix->stats.tiles.freed++;
#endif
- entry->count--;
+ --entry->count;
if (!entry->count && entry->matrix != tileMatrix->matrix) {
eina_matrixsparse_free(entry->matrix);
tileMatrix->matrices = eina_inlist_remove(tileMatrix->matrices, EINA_INLIST_GET(entry));
@@ -246,16 +240,15 @@ Ewk_Tile_Matrix* ewk_tile_matrix_new(Ewk_Tile_Unused_Cache* tileUnusedCache, uns
bool ewk_tile_matrix_zoom_level_set(Ewk_Tile_Matrix* tileMatrix, float zoom)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(tileMatrix, false);
- Ewk_Tile_Matrix_Entry* iterator = 0;
- Ewk_Tile_Matrix_Entry* entry = 0;
- EINA_INLIST_FOREACH(tileMatrix->matrices, iterator) {
- if (iterator->zoom != zoom)
- continue;
- entry = iterator;
- tileMatrix->matrices = eina_inlist_promote(tileMatrix->matrices, EINA_INLIST_GET(entry));
- tileMatrix->matrix = entry->matrix;
- return true;
+ Ewk_Tile_Matrix_Entry* it;
+ EINA_INLIST_FOREACH(tileMatrix->matrices, it) {
+ if (it->zoom == zoom) {
+ tileMatrix->matrices = eina_inlist_promote(tileMatrix->matrices, EINA_INLIST_GET(it));
+ tileMatrix->matrix = it->matrix;
+
+ return true;
+ }
}
return false;
}
@@ -264,34 +257,31 @@ void ewk_tile_matrix_entry_new(Ewk_Tile_Matrix* tileMatrix, float zoom)
{
EINA_SAFETY_ON_NULL_RETURN(tileMatrix);
- Ewk_Tile_Matrix_Entry* entry = new Ewk_Tile_Matrix_Entry;
+ OwnPtr<Ewk_Tile_Matrix_Entry> entry = adoptPtr(new Ewk_Tile_Matrix_Entry);
entry->zoom = zoom;
entry->count = 0;
entry->matrix = eina_matrixsparse_new(1, 1, _ewk_tile_matrix_cell_free, tileMatrix);
if (!entry->matrix) {
ERR("could not create sparse matrix.");
- delete entry;
return;
}
- tileMatrix->matrices = eina_inlist_prepend(tileMatrix->matrices, EINA_INLIST_GET(entry));
tileMatrix->matrix = entry->matrix;
+ tileMatrix->matrices = eina_inlist_prepend(tileMatrix->matrices, EINA_INLIST_GET(entry.leakPtr()));
}
void ewk_tile_matrix_invalidate(Ewk_Tile_Matrix* tileMatrix)
{
EINA_SAFETY_ON_NULL_RETURN(tileMatrix);
- Ewk_Tile_Matrix_Entry* iterator;
- Eina_Inlist* matrixList;
- matrixList = tileMatrix->matrices;
+ Eina_Inlist* matrixList = tileMatrix->matrices;
while (matrixList) {
- iterator = EINA_INLIST_CONTAINER_GET(matrixList, Ewk_Tile_Matrix_Entry);
- Eina_Inlist* next = (matrixList->next) ? matrixList->next : 0;
+ Ewk_Tile_Matrix_Entry* it = EINA_INLIST_CONTAINER_GET(matrixList, Ewk_Tile_Matrix_Entry);
+ Eina_Inlist* next = matrixList->next;
- if (iterator->matrix != tileMatrix->matrix) {
- eina_matrixsparse_free(iterator->matrix);
+ if (it->matrix != tileMatrix->matrix) {
+ eina_matrixsparse_free(it->matrix);
tileMatrix->matrices = eina_inlist_remove(tileMatrix->matrices, matrixList);
- delete iterator;
+ delete it;
}
matrixList = next;
@@ -305,16 +295,11 @@ void ewk_tile_matrix_invalidate(Ewk_Tile_Matrix* tileMatrix)
*/
void ewk_tile_matrix_free(Ewk_Tile_Matrix* tileMatrix)
{
- Ewk_Tile_Matrix_Entry* entry;
-#ifdef DEBUG_MEM_LEAKS
- uint64_t tiles, bytes;
-#endif
-
EINA_SAFETY_ON_NULL_RETURN(tileMatrix);
ewk_tile_unused_cache_freeze(tileMatrix->tileUnusedCache);
ewk_tile_matrix_invalidate(tileMatrix);
- entry = EINA_INLIST_CONTAINER_GET(tileMatrix->matrices, Ewk_Tile_Matrix_Entry);
+ Ewk_Tile_Matrix_Entry* entry = EINA_INLIST_CONTAINER_GET(tileMatrix->matrices, Ewk_Tile_Matrix_Entry);
eina_matrixsparse_free(entry->matrix);
tileMatrix->matrices = eina_inlist_remove(tileMatrix->matrices, reinterpret_cast<Eina_Inlist*>(entry));
tileMatrix->matrices = 0;
@@ -324,8 +309,8 @@ void ewk_tile_matrix_free(Ewk_Tile_Matrix* tileMatrix)
ewk_tile_unused_cache_unref(tileMatrix->tileUnusedCache);
#ifdef DEBUG_MEM_LEAKS
- tiles = tileMatrix->stats.tiles.allocated - tileMatrix->stats.tiles.freed;
- bytes = tileMatrix->stats.bytes.allocated - tileMatrix->stats.bytes.freed;
+ uint64_t tiles = tileMatrix->stats.tiles.allocated - tileMatrix->stats.tiles.freed;
+ uint64_t bytes = tileMatrix->stats.bytes.allocated - tileMatrix->stats.bytes.freed;
tiles_leaked += tiles;
bytes_leaked += bytes;
@@ -358,12 +343,14 @@ void ewk_tile_matrix_free(Ewk_Tile_Matrix* tileMatrix)
void ewk_tile_matrix_resize(Ewk_Tile_Matrix* tileMatrix, unsigned long cols, unsigned long rows)
{
EINA_SAFETY_ON_NULL_RETURN(tileMatrix);
+
eina_matrixsparse_size_set(tileMatrix->matrix, rows, cols);
}
void ewk_tile_matrix_size_get(Ewk_Tile_Matrix* tileMatrix, unsigned long* columns, unsigned long* rows)
{
EINA_SAFETY_ON_NULL_RETURN(tileMatrix);
+
eina_matrixsparse_size_get(tileMatrix->matrix, rows, columns);
}
@@ -375,6 +362,7 @@ void ewk_tile_matrix_size_get(Ewk_Tile_Matrix* tileMatrix, unsigned long* column
Ewk_Tile_Unused_Cache* ewk_tile_matrix_unused_cache_get(const Ewk_Tile_Matrix* tileMatrix)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(tileMatrix, 0);
+
return tileMatrix->tileUnusedCache;
}
@@ -405,14 +393,15 @@ Ewk_Tile* ewk_tile_matrix_tile_exact_get(Ewk_Tile_Matrix* tileMatrix, unsigned l
if (!tile)
return 0;
- if (tile->zoom == zoom)
- goto end;
+ if (tile->zoom != zoom)
+ return 0;
-end:
+#ifndef NDEBUG
if (!tile->visible) {
if (!ewk_tile_unused_cache_tile_get(tileMatrix->tileUnusedCache, tile))
WRN("Ewk_Tile was unused but not in cache? bug!");
}
+#endif
return tile;
}
@@ -429,12 +418,9 @@ end:
*
* @see ewk_tile_matrix_tile_exact_get()
*/
-Eina_Bool ewk_tile_matrix_tile_exact_exists(Ewk_Tile_Matrix* tileMatrix, unsigned long column, unsigned long row, float zoom)
+bool ewk_tile_matrix_tile_exact_exists(Ewk_Tile_Matrix* tileMatrix, unsigned long column, unsigned long row, float zoom)
{
- if (!eina_matrixsparse_data_idx_get(tileMatrix->matrix, row, column))
- return false;
-
- return true;
+ return ewk_tile_matrix_tile_exact_get(tileMatrix, column, row, zoom);
}
/**
@@ -451,23 +437,20 @@ Eina_Bool ewk_tile_matrix_tile_exact_exists(Ewk_Tile_Matrix* tileMatrix, unsigne
*/
Ewk_Tile* ewk_tile_matrix_tile_new(Ewk_Tile_Matrix* tileMatrix, Evas* canvas, unsigned long column, unsigned long row, float zoom)
{
- Evas_Coord tileWidth, tileHeight;
- Ewk_Tile* tile;
- Ewk_Tile_Matrix_Entry* entry;
-
EINA_SAFETY_ON_NULL_RETURN_VAL(tileMatrix, 0);
EINA_SAFETY_ON_FALSE_RETURN_VAL(zoom > 0.0, 0);
- entry = ewk_tile_matrix_entry_get(tileMatrix, zoom);
+
+ Ewk_Tile_Matrix_Entry* entry = ewk_tile_matrix_entry_get(tileMatrix, zoom);
if (!entry) {
ERR("could not get matrix at zoom %f for tile", zoom);
return 0;
}
- entry->count++;
+ ++entry->count;
- tileWidth = tileMatrix->tile.width;
- tileHeight = tileMatrix->tile.height;
+ Evas_Coord tileWidth = tileMatrix->tile.width;
+ Evas_Coord tileHeight = tileMatrix->tile.height;
- tile = ewk_tile_new(canvas, tileWidth, tileHeight, zoom, tileMatrix->cspace);
+ Ewk_Tile* tile = ewk_tile_new(canvas, tileWidth, tileHeight, zoom, tileMatrix->cspace);
if (!tile) {
ERR("could not create tile %dx%d at %f, cspace=%d", tileWidth, tileHeight, (double)zoom, tileMatrix->cspace);
return 0;
@@ -511,7 +494,7 @@ Ewk_Tile* ewk_tile_matrix_tile_new(Ewk_Tile_Matrix* tileMatrix, Evas* canvas, un
*
* @return #true on success or #false on failure.
*/
-Eina_Bool ewk_tile_matrix_tile_put(Ewk_Tile_Matrix* tileMatrix, Ewk_Tile* tile, double lastUsed)
+bool ewk_tile_matrix_tile_put(Ewk_Tile_Matrix* tileMatrix, Ewk_Tile* tile, double lastUsed)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(tileMatrix, false);
EINA_SAFETY_ON_NULL_RETURN_VAL(tile, false);
@@ -526,32 +509,32 @@ Eina_Bool ewk_tile_matrix_tile_put(Ewk_Tile_Matrix* tileMatrix, Ewk_Tile* tile,
void ewk_tile_matrix_tile_updates_clear(Ewk_Tile_Matrix* tileMatrix, Ewk_Tile* tile)
{
EINA_SAFETY_ON_NULL_RETURN(tileMatrix);
+
if (!tile->updates && !tile->stats.full_update)
return;
+
ewk_tile_updates_clear(tile);
tileMatrix->updates = eina_list_remove(tileMatrix->updates, tile);
}
-static Eina_Bool _ewk_tile_matrix_slicer_setup(Ewk_Tile_Matrix* tileMatrix, const Eina_Rectangle* area, float zoom, Eina_Tile_Grid_Slicer* slicer)
+static bool _ewk_tile_matrix_slicer_setup(Ewk_Tile_Matrix* tileMatrix, const Eina_Rectangle* area, float zoom, Eina_Tile_Grid_Slicer* slicer)
{
- unsigned long rows, cols;
- Evas_Coord x, y, width, height, tileWidth, tileHeight;
-
+ UNUSED_PARAM(zoom);
if (area->w <= 0 || area->h <= 0) {
- WRN("invalid area region: %d,%d+%dx%d.",
- area->x, area->y, area->w, area->h);
+ WRN("invalid area region: %d,%d+%dx%d.", area->x, area->y, area->w, area->h);
return false;
}
- x = area->x;
- y = area->y;
- width = area->w;
- height = area->h;
+ Evas_Coord x = area->x;
+ Evas_Coord y = area->y;
+ Evas_Coord width = area->w;
+ Evas_Coord height = area->h;
- tileWidth = tileMatrix->tile.width;
- tileHeight = tileMatrix->tile.height;
+ Evas_Coord tileWidth = tileMatrix->tile.width;
+ Evas_Coord tileHeight = tileMatrix->tile.height;
// cropping area region to fit matrix
+ unsigned long rows, cols;
eina_matrixsparse_size_get(tileMatrix->matrix, &rows, &cols);
if (x < 0) {
width += x;
@@ -562,40 +545,34 @@ static Eina_Bool _ewk_tile_matrix_slicer_setup(Ewk_Tile_Matrix* tileMatrix, cons
y = 0;
}
- if (y + height - 1 > (long)(rows * tileHeight))
+ if (y + height - 1 > static_cast<long>(rows * tileHeight))
height = rows * tileHeight - y;
- if (x + width - 1 > (long)(cols * tileWidth))
+ if (x + width - 1 > static_cast<long>(cols * tileWidth))
width = cols * tileWidth - x;
return eina_tile_grid_slicer_setup(slicer, x, y, width, height, tileWidth, tileHeight);
}
-Eina_Bool ewk_tile_matrix_update(Ewk_Tile_Matrix* tileMatrix, const Eina_Rectangle* update, float zoom)
+bool ewk_tile_matrix_update(Ewk_Tile_Matrix* tileMatrix, const Eina_Rectangle* update, float zoom)
{
- const Eina_Tile_Grid_Info* info;
- Eina_Tile_Grid_Slicer slicer;
EINA_SAFETY_ON_NULL_RETURN_VAL(tileMatrix, false);
EINA_SAFETY_ON_NULL_RETURN_VAL(update, false);
if (update->w < 1 || update->h < 1) {
- DBG("Why we get updates with empty areas? %d,%d+%dx%d at zoom %f",
- update->x, update->y, update->w, update->h, zoom);
+ DBG("Why we get updates with empty areas? %d,%d+%dx%d at zoom %f", update->x, update->y, update->w, update->h, zoom);
return true;
}
+ Eina_Tile_Grid_Slicer slicer;
if (!_ewk_tile_matrix_slicer_setup(tileMatrix, update, zoom, &slicer)) {
- ERR("Could not setup slicer for update %d,%d+%dx%d at zoom %f",
- update->x, update->y, update->w, update->h, zoom);
+ ERR("Could not setup slicer for update %d,%d+%dx%d at zoom %f", update->x, update->y, update->w, update->h, zoom);
return false;
}
+ const Eina_Tile_Grid_Info* info;
while (eina_tile_grid_slicer_next(&slicer, &info)) {
- unsigned long col, row;
- col = info->col;
- row = info->row;
-
- Ewk_Tile* tile = static_cast<Ewk_Tile*>(eina_matrixsparse_data_idx_get(tileMatrix->matrix, row, col));
+ Ewk_Tile* tile = static_cast<Ewk_Tile*>(eina_matrixsparse_data_idx_get(tileMatrix->matrix, info->row, info->col));
if (!tile)
continue;
@@ -613,11 +590,11 @@ Eina_Bool ewk_tile_matrix_update(Ewk_Tile_Matrix* tileMatrix, const Eina_Rectang
void ewk_tile_matrix_updates_process(Ewk_Tile_Matrix* tileMatrix)
{
- Eina_List* list, *listNext;
- void* item;
EINA_SAFETY_ON_NULL_RETURN(tileMatrix);
// process updates, unflag tiles
+ Eina_List* list, *listNext;
+ void* item;
EINA_LIST_FOREACH_SAFE(tileMatrix->updates, list, listNext, item) {
Ewk_Tile* tile = static_cast<Ewk_Tile*>(item);
ewk_tile_updates_process(tile, tileMatrix->render.callback, tileMatrix->render.data);
@@ -630,46 +607,43 @@ void ewk_tile_matrix_updates_process(Ewk_Tile_Matrix* tileMatrix)
void ewk_tile_matrix_updates_clear(Ewk_Tile_Matrix* tileMatrix)
{
- void* item;
EINA_SAFETY_ON_NULL_RETURN(tileMatrix);
+ void* item;
EINA_LIST_FREE(tileMatrix->updates, item)
ewk_tile_updates_clear(static_cast<Ewk_Tile*>(item));
tileMatrix->updates = 0;
}
+#ifdef DEBUG_MEM_LEAKS
// remove me later!
void ewk_tile_matrix_dbg(const Ewk_Tile_Matrix* tileMatrix)
{
- Eina_Iterator* iterator = eina_matrixsparse_iterator_complete_new(tileMatrix->matrix);
+ Eina_Iterator* it = eina_matrixsparse_iterator_complete_new(tileMatrix->matrix);
Eina_Matrixsparse_Cell* cell;
- Eina_Bool last_empty = false;
+ bool wasPreviousEmpty = false;
-#ifdef DEBUG_MEM_LEAKS
printf("Ewk_Tile Matrix: tiles[+%" PRIu64 ",-%" PRIu64 ":%" PRIu64 "] "
"bytes[+%" PRIu64 ",-%" PRIu64 ":%" PRIu64 "]\n",
tileMatrix->stats.tiles.allocated, tileMatrix->stats.tiles.freed,
tileMatrix->stats.tiles.allocated - tileMatrix->stats.tiles.freed,
tileMatrix->stats.bytes.allocated, tileMatrix->stats.bytes.freed,
tileMatrix->stats.bytes.allocated - tileMatrix->stats.bytes.freed);
-#else
- printf("Ewk_Tile Matrix:\n");
-#endif
- EINA_ITERATOR_FOREACH(iterator, cell) {
+ EINA_ITERATOR_FOREACH(it, cell) {
unsigned long row, column;
eina_matrixsparse_cell_position_get(cell, &row, &column);
Ewk_Tile* tile = static_cast<Ewk_Tile*>(eina_matrixsparse_cell_data_get(cell));
if (!tile) {
- if (!last_empty) {
- last_empty = true;
+ if (!wasPreviousEmpty) {
+ wasPreviousEmpty = true;
printf("Empty:");
}
printf(" [%lu,%lu]", column, row);
} else {
- if (last_empty) {
- last_empty = false;
+ if (wasPreviousEmpty) {
+ wasPreviousEmpty = false;
printf("\n");
}
printf("%3lu,%3lu %10p:", column, row, tile);
@@ -677,12 +651,13 @@ void ewk_tile_matrix_dbg(const Ewk_Tile_Matrix* tileMatrix)
printf("\n");
}
}
- if (last_empty)
+ if (wasPreviousEmpty)
printf("\n");
- eina_iterator_free(iterator);
+ eina_iterator_free(it);
ewk_tile_unused_cache_dbg(tileMatrix->tileUnusedCache);
}
+#endif
/**
* Freeze matrix to not do maintenance tasks.
@@ -696,9 +671,10 @@ void ewk_tile_matrix_dbg(const Ewk_Tile_Matrix* tileMatrix)
void ewk_tile_matrix_freeze(Ewk_Tile_Matrix* tileMatrix)
{
EINA_SAFETY_ON_NULL_RETURN(tileMatrix);
+
if (!tileMatrix->frozen)
ewk_tile_unused_cache_freeze(tileMatrix->tileUnusedCache);
- tileMatrix->frozen++;
+ ++tileMatrix->frozen;
}
/**
@@ -710,12 +686,13 @@ void ewk_tile_matrix_freeze(Ewk_Tile_Matrix* tileMatrix)
void ewk_tile_matrix_thaw(Ewk_Tile_Matrix* tileMatrix)
{
EINA_SAFETY_ON_NULL_RETURN(tileMatrix);
+
if (!tileMatrix->frozen) {
ERR("thawing more than freezing!");
return;
}
- tileMatrix->frozen--;
+ --tileMatrix->frozen;
if (!tileMatrix->frozen)
ewk_tile_unused_cache_thaw(tileMatrix->tileUnusedCache);
}
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_matrix_private.h b/Source/WebKit/efl/ewk/ewk_tiled_matrix_private.h
index 151ebb0b7..99a95d4e9 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_matrix_private.h
+++ b/Source/WebKit/efl/ewk/ewk_tiled_matrix_private.h
@@ -27,34 +27,34 @@
#include <Evas.h>
/* matrix of tiles */
-Ewk_Tile_Matrix *ewk_tile_matrix_new(Ewk_Tile_Unused_Cache *tuc, unsigned long cols, unsigned long rows, float zoom_level, Evas_Colorspace color_space, void (*render_callback)(void *data, Ewk_Tile *t, const Eina_Rectangle *update), const void *render_data);
-void ewk_tile_matrix_entry_new(Ewk_Tile_Matrix *tm, float zoom);
-void ewk_tile_matrix_free(Ewk_Tile_Matrix *tm);
+Ewk_Tile_Matrix* ewk_tile_matrix_new(Ewk_Tile_Unused_Cache* tuc, unsigned long cols, unsigned long rows, float zoom_level, Evas_Colorspace color_space, void (*render_callback)(void* data, Ewk_Tile* t, const Eina_Rectangle* update), const void* render_data);
+void ewk_tile_matrix_entry_new(Ewk_Tile_Matrix* tm, float zoom);
+void ewk_tile_matrix_free(Ewk_Tile_Matrix* tm);
-void ewk_tile_matrix_resize(Ewk_Tile_Matrix *tm, unsigned long cols, unsigned long rows);
-void ewk_tile_matrix_size_get(Ewk_Tile_Matrix *tm, unsigned long *cols, unsigned long *rows);
-bool ewk_tile_matrix_zoom_level_set(Ewk_Tile_Matrix *tm, float zoom);
-void ewk_tile_matrix_invalidate(Ewk_Tile_Matrix *tm);
+void ewk_tile_matrix_resize(Ewk_Tile_Matrix* tm, unsigned long cols, unsigned long rows);
+void ewk_tile_matrix_size_get(Ewk_Tile_Matrix* tm, unsigned long* cols, unsigned long* rows);
+bool ewk_tile_matrix_zoom_level_set(Ewk_Tile_Matrix* tm, float zoom);
+void ewk_tile_matrix_invalidate(Ewk_Tile_Matrix* tm);
-Ewk_Tile_Unused_Cache *ewk_tile_matrix_unused_cache_get(const Ewk_Tile_Matrix *tm);
+Ewk_Tile_Unused_Cache* ewk_tile_matrix_unused_cache_get(const Ewk_Tile_Matrix* tm);
-Ewk_Tile *ewk_tile_matrix_tile_exact_get(Ewk_Tile_Matrix *tm, unsigned long col, unsigned long row, float zoom);
-Eina_Bool ewk_tile_matrix_tile_exact_exists(Ewk_Tile_Matrix *tm, unsigned long col, unsigned long row, float zoom);
-Ewk_Tile *ewk_tile_matrix_tile_nearest_get(Ewk_Tile_Matrix *tm, unsigned long col, unsigned long row, float zoom);
-Ewk_Tile *ewk_tile_matrix_tile_new(Ewk_Tile_Matrix *tm, Evas *evas, unsigned long col, unsigned long row, float zoom);
-Eina_Bool ewk_tile_matrix_tile_put(Ewk_Tile_Matrix *tm, Ewk_Tile *t, double last_used);
+Ewk_Tile* ewk_tile_matrix_tile_exact_get(Ewk_Tile_Matrix* tm, unsigned long col, unsigned long row, float zoom);
+bool ewk_tile_matrix_tile_exact_exists(Ewk_Tile_Matrix* tm, unsigned long col, unsigned long row, float zoom);
+Ewk_Tile* ewk_tile_matrix_tile_nearest_get(Ewk_Tile_Matrix* tm, unsigned long col, unsigned long row, float zoom);
+Ewk_Tile* ewk_tile_matrix_tile_new(Ewk_Tile_Matrix* tm, Evas* evas, unsigned long col, unsigned long row, float zoom);
+bool ewk_tile_matrix_tile_put(Ewk_Tile_Matrix* tm, Ewk_Tile* t, double last_used);
-void ewk_tile_matrix_tile_updates_clear(Ewk_Tile_Matrix *tm, Ewk_Tile *t);
+void ewk_tile_matrix_tile_updates_clear(Ewk_Tile_Matrix* tm, Ewk_Tile* t);
-Eina_Bool ewk_tile_matrix_update(Ewk_Tile_Matrix *tm, const Eina_Rectangle *update, float zoom);
-void ewk_tile_matrix_updates_process(Ewk_Tile_Matrix *tm);
-void ewk_tile_matrix_updates_clear(Ewk_Tile_Matrix *tm);
-void ewk_tile_matrix_freeze(Ewk_Tile_Matrix *tm);
-void ewk_tile_matrix_thaw(Ewk_Tile_Matrix *tm);
+bool ewk_tile_matrix_update(Ewk_Tile_Matrix* tm, const Eina_Rectangle* update, float zoom);
+void ewk_tile_matrix_updates_process(Ewk_Tile_Matrix* tm);
+void ewk_tile_matrix_updates_clear(Ewk_Tile_Matrix* tm);
+void ewk_tile_matrix_freeze(Ewk_Tile_Matrix* tm);
+void ewk_tile_matrix_thaw(Ewk_Tile_Matrix* tm);
// remove me!
-void ewk_tile_matrix_dbg(const Ewk_Tile_Matrix *tm);
-void ewk_tile_unused_cache_dbg(const Ewk_Tile_Unused_Cache *tuc);
+void ewk_tile_matrix_dbg(const Ewk_Tile_Matrix* tm);
+void ewk_tile_unused_cache_dbg(const Ewk_Tile_Unused_Cache* tuc);
void ewk_tile_accounting_dbg();
#endif // ewk_tiled_matrix_private_h
diff --git a/Source/WebKit/efl/ewk/ewk_view.h b/Source/WebKit/efl/ewk/ewk_view.h
index 2a260f1de..cc9f01350 100644
--- a/Source/WebKit/efl/ewk/ewk_view.h
+++ b/Source/WebKit/efl/ewk/ewk_view.h
@@ -299,6 +299,7 @@ typedef struct _Ewk_Download Ewk_Download;
/// Contains Download data.
struct _Ewk_Download {
const char *url; /**< URL of resource. */
+ const char *suggested_name; /**< suggested name from download attributes */
/* to be extended */
};
diff --git a/Source/WebKit/efl/ewk/ewk_view_tiled.cpp b/Source/WebKit/efl/ewk/ewk_view_tiled.cpp
index 7615707d9..f404b292c 100644
--- a/Source/WebKit/efl/ewk/ewk_view_tiled.cpp
+++ b/Source/WebKit/efl/ewk/ewk_view_tiled.cpp
@@ -29,7 +29,7 @@
static Ewk_View_Smart_Class _parent_sc = EWK_VIEW_SMART_CLASS_INIT_NULL;
-static Eina_Bool _ewk_view_tiled_render_cb(void* data, Ewk_Tile* tile, const Eina_Rectangle* area)
+static bool _ewk_view_tiled_render_cb(void* data, Ewk_Tile* tile, const Eina_Rectangle* area)
{
Ewk_View_Private_Data* priv = static_cast<Ewk_View_Private_Data*>(data);
Eina_Rectangle rect = {area->x + tile->x, area->y + tile->y, area->w, area->h};
@@ -38,7 +38,7 @@ static Eina_Bool _ewk_view_tiled_render_cb(void* data, Ewk_Tile* tile, const Ein
Ewk_Paint_Context* context = ewk_paint_context_from_image_data_new(pixels, tile->width, tile->height, tile->cspace);
ewk_paint_context_translate(context, -tile->x, -tile->y);
- Eina_Bool result = ewk_view_paint_contents(priv, context, &rect);
+ bool result = ewk_view_paint_contents(priv, context, &rect);
ewk_paint_context_free(context);
evas_object_image_data_set(tile->image, pixels);
@@ -56,8 +56,7 @@ static void* _ewk_view_tiled_updates_process_pre(void* data, Evas_Object* ewkVie
static Evas_Object* _ewk_view_tiled_smart_backing_store_add(Ewk_View_Smart_Data* smartData)
{
Evas_Object* backingStore = ewk_tiled_backing_store_add(smartData->base.evas);
- ewk_tiled_backing_store_render_cb_set
- (backingStore, _ewk_view_tiled_render_cb, smartData->_priv);
+ ewk_tiled_backing_store_render_cb_set(backingStore, _ewk_view_tiled_render_cb, smartData->_priv);
ewk_tiled_backing_store_updates_process_pre_set
(backingStore, _ewk_view_tiled_updates_process_pre, smartData->_priv);
return backingStore;
diff --git a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp
index fd29b811c..dbb0092e8 100644
--- a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp
+++ b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.cpp
@@ -23,6 +23,7 @@
#include <EWebKit.h>
#include <wtf/PassOwnPtr.h>
+#include <wtf/RefPtr.h>
namespace EWKUnitTests {
@@ -98,11 +99,11 @@ bool EWKTestView::init()
switch (m_defaultViewType) {
case SingleView:
- m_webView = adoptPtr(ewk_view_single_add(m_evas));
+ m_webView = adoptRef(ewk_view_single_add(m_evas));
break;
case TiledView:
- m_webView = adoptPtr(ewk_view_tiled_add(m_evas));
+ m_webView = adoptRef(ewk_view_tiled_add(m_evas));
break;
}
diff --git a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h
index 6d15d0d30..1bdd9edae 100644
--- a/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h
+++ b/Source/WebKit/efl/tests/UnitTestUtils/EWKTestView.h
@@ -23,6 +23,7 @@
#include <Evas.h>
#include <string>
#include <wtf/OwnPtr.h>
+#include <wtf/efl/RefPtrEfl.h>
namespace EWKUnitTests {
@@ -63,7 +64,7 @@ private:
EWKTestView operator=(const EWKTestView&);
Evas* m_evas;
- OwnPtr<Evas_Object> m_webView;
+ RefPtr<Evas_Object> m_webView;
int m_width, m_height;
EwkViewType m_defaultViewType;
diff --git a/Source/WebKit/gtk/ChangeLog b/Source/WebKit/gtk/ChangeLog
index 778dabcf3..57cb94abb 100644
--- a/Source/WebKit/gtk/ChangeLog
+++ b/Source/WebKit/gtk/ChangeLog
@@ -1,3 +1,88 @@
+2012-09-14 Zan Dobersek <zandobersek@gmail.com>
+
+ [GTK] Clear application cache between tests in DumpRenderTree
+ https://bugs.webkit.org/show_bug.cgi?id=96543
+
+ Reviewed by Philippe Normand.
+
+ Add a method to the DumpRenderTreeSupportGtk class that upon calling
+ clears the application cache and vacuums the database file.
+
+ * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+ (DumpRenderTreeSupportGtk::clearApplicationCache):
+ * WebCoreSupport/DumpRenderTreeSupportGtk.h:
+ (DumpRenderTreeSupportGtk):
+
+2012-09-13 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r128453.
+ http://trac.webkit.org/changeset/128453
+ https://bugs.webkit.org/show_bug.cgi?id=96681
+
+ Having tests use the same appcache directory leads to timeouts
+ (Requested by zdobersek on #webkit).
+
+ * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+ (DumpRenderTreeSupportGtk::clearMemoryCache):
+ * WebCoreSupport/DumpRenderTreeSupportGtk.h:
+ (DumpRenderTreeSupportGtk):
+
+2012-09-13 Zan Dobersek <zandobersek@gmail.com>
+
+ [GTK] Clear application cache between tests in DumpRenderTree
+ https://bugs.webkit.org/show_bug.cgi?id=96543
+
+ Reviewed by Philippe Normand.
+
+ Add a method to the DumpRenderTreeSupportGtk class that upon calling
+ clears the application cache and vacuums the database file.
+
+ * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+ (DumpRenderTreeSupportGtk::clearApplicationCache):
+ * WebCoreSupport/DumpRenderTreeSupportGtk.h:
+ (DumpRenderTreeSupportGtk):
+
+2012-09-12 Siraj Razick <siraj.razick@collabora.co.uk>
+
+ [GTK] Update AcceleratedCompositingContextClutter to match AcceleratedCompositingContext.h API update
+ https://bugs.webkit.org/show_bug.cgi?id=96165
+
+ Reviewed by Martin Robinson.
+
+ Due to the refactoring done in bug #90085 AcceleratedCompositingContext API changed, as a result
+ AcceleratedCompositingContextClutter doesn't compile anymore. This patch is to update the
+ AcceleratedCompositingContextClutter implementations to match the API update, and Make webkit
+ AC backend compile again.
+
+ * WebCoreSupport/AcceleratedCompositingContextClutter.cpp:
+ (WebKit::AcceleratedCompositingContext::AcceleratedCompositingContext):
+ (WebKit::AcceleratedCompositingContext::~AcceleratedCompositingContext):
+ (WebKit::AcceleratedCompositingContext::setRootCompositingLayer):
+ (WebKit::AcceleratedCompositingContext::setNonCompositedContentsNeedDisplay):
+ (WebKit::flushAndRenderLayersCallback):
+ (WebKit::AcceleratedCompositingContext::scheduleLayerFlush):
+ (WebKit::AcceleratedCompositingContext::flushPendingLayerChanges):
+ (WebKit::AcceleratedCompositingContext::flushAndRenderLayers):
+
+2012-09-11 Arnaud Renevier <a.renevier@sisa.samsung.com>
+
+ [Gtk] allow building with css-shaders
+ https://bugs.webkit.org/show_bug.cgi?id=95603
+
+ Reviewed by Martin Robinson.
+
+ Add enable-css-shaders property to WebKit WebSettings, and connects it
+ to WebCore settings setCSSCustomFilterEnabled.
+
+ * webkit/webkitwebsettings.cpp:
+ (webkit_web_settings_class_init):
+ (webkit_web_settings_set_property):
+ (webkit_web_settings_get_property):
+ * webkit/webkitwebsettingsprivate.h:
+ * webkit/webkitwebview.cpp:
+ (webkit_web_view_update_settings):
+ (webkit_web_view_settings_notify):
+
2012-09-09 Emil A Eklund <eae@chromium.org>
Rename Node::getRect/getPixelSnappedRect and remove ContainerNode::getRect
diff --git a/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextClutter.cpp b/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextClutter.cpp
index 6fe0c36f3..451117a82 100644
--- a/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextClutter.cpp
+++ b/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextClutter.cpp
@@ -36,7 +36,7 @@ namespace WebKit {
AcceleratedCompositingContext::AcceleratedCompositingContext(WebKitWebView* webView)
: m_webView(webView)
- , m_syncTimerCallbackId(0)
+ , m_layerFlushTimerCallbackId(0)
, m_rootGraphicsLayer(0)
, m_rootLayerEmbedder(0)
{
@@ -44,8 +44,8 @@ AcceleratedCompositingContext::AcceleratedCompositingContext(WebKitWebView* webV
AcceleratedCompositingContext::~AcceleratedCompositingContext()
{
- if (m_syncTimerCallbackId)
- g_source_remove(m_syncTimerCallbackId);
+ if (m_layerFlushTimerCallbackId)
+ g_source_remove(m_layerFlushTimerCallbackId);
}
bool AcceleratedCompositingContext::enabled()
@@ -59,7 +59,7 @@ bool AcceleratedCompositingContext::renderLayersToWindow(cairo_t*, const IntRect
return false;
}
-void AcceleratedCompositingContext::attachRootGraphicsLayer(GraphicsLayer* graphicsLayer)
+void AcceleratedCompositingContext::setRootCompositingLayer(GraphicsLayer* graphicsLayer)
{
if (!graphicsLayer) {
gtk_container_remove(GTK_CONTAINER(m_webView), m_rootLayerEmbedder);
@@ -86,7 +86,7 @@ void AcceleratedCompositingContext::attachRootGraphicsLayer(GraphicsLayer* graph
}
}
-void AcceleratedCompositingContext::scheduleRootLayerRepaint(const IntRect& rect)
+void AcceleratedCompositingContext::setNonCompositedContentsNeedDisplay(const IntRect& rect)
{
if (!m_rootGraphicsLayer)
return;
@@ -112,34 +112,34 @@ void AcceleratedCompositingContext::resizeRootLayer(const IntSize& size)
gtk_widget_size_allocate(GTK_WIDGET(m_rootLayerEmbedder), &allocation);
}
-static gboolean syncLayersTimeoutCallback(AcceleratedCompositingContext* context)
+static gboolean flushAndRenderLayersCallback(AcceleratedCompositingContext* context)
{
- context->syncLayersTimeout();
+ context->flushAndRenderLayers();
return FALSE;
}
-void AcceleratedCompositingContext::markForSync()
+void AcceleratedCompositingContext::scheduleLayerFlush()
{
- if (m_syncTimerCallbackId)
+ if (m_layerFlushTimerCallbackId)
return;
// We use a GLib timer because otherwise GTK+ event handling during
// dragging can starve WebCore timers, which have a lower priority.
- m_syncTimerCallbackId = g_timeout_add_full(GDK_PRIORITY_EVENTS, 0, reinterpret_cast<GSourceFunc>(syncLayersTimeoutCallback), this, 0);
+ m_layerFlushTimerCallbackId = g_timeout_add_full(GDK_PRIORITY_EVENTS, 0, reinterpret_cast<GSourceFunc>(flushAndRenderLayersCallback), this, 0);
}
-void AcceleratedCompositingContext::syncLayersNow()
+bool AcceleratedCompositingContext::flushPendingLayerChanges()
{
if (m_rootGraphicsLayer)
m_rootGraphicsLayer->syncCompositingStateForThisLayerOnly();
- core(m_webView)->mainFrame()->view()->syncCompositingStateIncludingSubframes();
+ return core(m_webView)->mainFrame()->view()->syncCompositingStateIncludingSubframes();
}
-void AcceleratedCompositingContext::syncLayersTimeout()
+void AcceleratedCompositingContext::flushAndRenderLayers()
{
- m_syncTimerCallbackId = 0;
- syncLayersNow();
+ m_layerFlushTimerCallbackId = 0;
+ flushPendingLayerChanges();
if (!m_rootGraphicsLayer)
return;
diff --git a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp
index 39b9ddc30..e5d6989d1 100644
--- a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp
+++ b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp
@@ -26,6 +26,7 @@
#include "AXObjectCache.h"
#include "AccessibilityObject.h"
#include "AnimationController.h"
+#include "ApplicationCacheStorage.h"
#include "CSSComputedStyleDeclaration.h"
#include "Chrome.h"
#include "ChromeClientGtk.h"
@@ -811,3 +812,9 @@ void DumpRenderTreeSupportGtk::clearMemoryCache()
{
memoryCache()->evictResources();
}
+
+void DumpRenderTreeSupportGtk::clearApplicationCache()
+{
+ cacheStorage().empty();
+ cacheStorage().vacuumDatabaseFile();
+}
diff --git a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h
index 7e6e1fa9b..375020d7b 100644
--- a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h
+++ b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h
@@ -128,6 +128,7 @@ public:
static void resetTrackedRepaints(WebKitWebFrame*);
static void clearMemoryCache();
+ static void clearApplicationCache();
private:
static bool s_drtRun;
diff --git a/Source/WebKit/gtk/webkit/webkitwebsettings.cpp b/Source/WebKit/gtk/webkit/webkitwebsettings.cpp
index b93361105..db74507f6 100644
--- a/Source/WebKit/gtk/webkit/webkitwebsettings.cpp
+++ b/Source/WebKit/gtk/webkit/webkitwebsettings.cpp
@@ -118,7 +118,8 @@ enum {
PROP_ENABLE_ACCELERATED_COMPOSITING,
PROP_ENABLE_SMOOTH_SCROLLING,
PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE,
- PROP_MEDIA_PLAYBACK_ALLOWS_INLINE
+ PROP_MEDIA_PLAYBACK_ALLOWS_INLINE,
+ PROP_ENABLE_CSS_SHADERS
};
static void webkit_web_settings_finalize(GObject* object);
@@ -941,6 +942,25 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass)
TRUE,
flags));
+ /**
+ * WebKitWebSettings:enable-css-shaders
+ *
+ * Enable or disable support for css shaders (css custom filters).
+ * Accelerated compositing needs to be enabled at compile time, but needs
+ * not be enabled at runtime.
+ *
+ * See also https://dvcs.w3.org/hg/FXTF/raw-file/tip/custom/index.html
+ *
+ * Since: 2.0
+ */
+ g_object_class_install_property(gobject_class,
+ PROP_ENABLE_CSS_SHADERS,
+ g_param_spec_boolean("enable-css-shaders",
+ _("Enable CSS shaders"),
+ _("Whether to enable css shaders"),
+ FALSE,
+ flags));
+
}
static void webkit_web_settings_init(WebKitWebSettings* web_settings)
@@ -1119,6 +1139,9 @@ static void webkit_web_settings_set_property(GObject* object, guint prop_id, con
case PROP_ENABLE_SMOOTH_SCROLLING:
priv->enableSmoothScrolling = g_value_get_boolean(value);
break;
+ case PROP_ENABLE_CSS_SHADERS:
+ priv->enableCSSShaders = g_value_get_boolean(value);
+ break;
case PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE:
priv->mediaPlaybackRequiresUserGesture = g_value_get_boolean(value);
break;
@@ -1293,6 +1316,9 @@ static void webkit_web_settings_get_property(GObject* object, guint prop_id, GVa
case PROP_ENABLE_SMOOTH_SCROLLING:
g_value_set_boolean(value, priv->enableSmoothScrolling);
break;
+ case PROP_ENABLE_CSS_SHADERS:
+ g_value_set_boolean(value, priv->enableCSSShaders);
+ break;
case PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE:
g_value_set_boolean(value, priv->mediaPlaybackRequiresUserGesture);
break;
diff --git a/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h b/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h
index 5ed24a537..d8df8ef0c 100644
--- a/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h
+++ b/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h
@@ -81,6 +81,7 @@ struct _WebKitWebSettingsPrivate {
gboolean enableWebAudio;
gboolean enableAcceleratedCompositing;
gboolean enableSmoothScrolling;
+ gboolean enableCSSShaders;
gboolean mediaPlaybackRequiresUserGesture;
gboolean mediaPlaybackAllowsInline;
};
diff --git a/Source/WebKit/gtk/webkit/webkitwebview.cpp b/Source/WebKit/gtk/webkit/webkitwebview.cpp
index 8b992119d..0cc8d96b6 100644
--- a/Source/WebKit/gtk/webkit/webkitwebview.cpp
+++ b/Source/WebKit/gtk/webkit/webkitwebview.cpp
@@ -3444,6 +3444,10 @@ static void webkit_web_view_update_settings(WebKitWebView* webView)
coreSettings->setEnableScrollAnimator(settingsPrivate->enableSmoothScrolling);
#endif
+#if ENABLE(CSS_SHADERS)
+ coreSettings->setCSSCustomFilterEnabled(settingsPrivate->enableCSSShaders);
+#endif
+
// Use mock scrollbars if in DumpRenderTree mode (i.e. testing layout tests).
coreSettings->setMockScrollbarsEnabled(DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled());
@@ -3585,6 +3589,11 @@ static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GPar
settings->setEnableScrollAnimator(g_value_get_boolean(&value));
#endif
+#if ENABLE(CSS_SHADERS)
+ else if (name == g_intern_string("enable-css-shaders"))
+ settings->setCSSCustomFilterEnabled(g_value_get_boolean(&value));
+#endif
+
else if (!g_object_class_find_property(G_OBJECT_GET_CLASS(webSettings), name))
g_warning("Unexpected setting '%s'", name);
g_value_unset(&value);
diff --git a/Source/WebKit/mac/ChangeLog b/Source/WebKit/mac/ChangeLog
index 91b7ffa14..7d289c069 100644
--- a/Source/WebKit/mac/ChangeLog
+++ b/Source/WebKit/mac/ChangeLog
@@ -1,3 +1,148 @@
+2012-09-13 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r128552.
+ http://trac.webkit.org/changeset/128552
+ https://bugs.webkit.org/show_bug.cgi?id=96729
+
+ Still breaks the test on chromium linux debug. It's quite
+ annoying. (Requested by rniwa on #webkit).
+
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView _invalidateGStatesForTree]):
+
+2012-09-13 Ryosuke Niwa <rniwa@webkit.org>
+
+ suspend/resumeWidgetHierarchyUpdates should be a RAII object
+ https://bugs.webkit.org/show_bug.cgi?id=96706
+
+ Reviewed by Simon Fraser.
+
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView _invalidateGStatesForTree]):
+
+2012-09-13 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r128531.
+ http://trac.webkit.org/changeset/128531
+ https://bugs.webkit.org/show_bug.cgi?id=96719
+
+ plugins/document-open.html crash on Chromium-Linux (Requested
+ by tkent1 on #webkit).
+
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView _invalidateGStatesForTree]):
+
+2012-09-13 Benjamin Poulain <bpoulain@apple.com>
+
+ Improve the SourceProvider hierarchy
+ https://bugs.webkit.org/show_bug.cgi?id=95635
+
+ Reviewed by Geoffrey Garen.
+
+ * Plugins/Hosted/NetscapePluginInstanceProxy.mm: Fix a #include abuse.
+ * WebView/WebScriptDebugger.mm:
+ (toNSString): We can now use the (faster) implicit conversion
+ from String to NSString.
+
+2012-09-13 Ryosuke Niwa <rniwa@webkit.org>
+
+ suspend/resumeWidgetHierarchyUpdates should be a RAII object
+ https://bugs.webkit.org/show_bug.cgi?id=96706
+
+ Reviewed by Simon Fraser.
+
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView _invalidateGStatesForTree]):
+
+2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r127876.
+ http://trac.webkit.org/changeset/127876
+ https://bugs.webkit.org/show_bug.cgi?id=96600
+
+ mouse click doesn't work for spin button if spin button in
+ iframe (Requested by yosin on #webkit).
+
+ * WebCoreSupport/WebFrameLoaderClient.mm:
+ (WebFrameLoaderClient::actionDictionary):
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView elementAtPoint:allowShadowContent:]):
+
+2012-09-11 Geoffrey Garen <ggaren@apple.com>
+
+ Mac build fix: Commit a file I forgot.
+
+ * WebView/WebScriptDebugDelegate.mm:
+ (-[WebScriptCallFrame functionName]):
+
+2012-09-11 Michael Saboff <msaboff@apple.com>
+
+ Build fixed for http://trac.webkit.org/changeset/128243
+
+ Rubber stamped by Stephanie Lewis.
+
+ Added missing include file needed by 96422.
+
+ * icu/unicode/unorm2.h: Added.
+
+2012-09-11 Michael Saboff <msaboff@apple.com>
+
+ Build fixed for http://trac.webkit.org/changeset/128243
+
+ Rubber stamped by Stephanie Lewis.
+
+ Added missing include file needed by 96422.
+
+ * icu/unicode/ptypes.h: Added.
+
+2012-09-11 Michael Saboff <msaboff@apple.com>
+
+ Update ICU header files to more recent version
+ https://bugs.webkit.org/show_bug.cgi?id=96422
+
+ Reviewed by Geoff Garen.
+
+ Updated ICU header files to 4.6.1. Modifications made as part of the merge are:
+ platform.h - Changed ifndef / define / endif for U_HAVE_UINT8_T, U_HAVE_UINT16_T, U_HAVE_UINT32_T,
+ U_HAVE_UINT64_T, U_IS_BIG_ENDIAN and U_ENABLE_TRACING to match the existing platform.h
+ putil.h (line 132) - Changes defined(U_WINDOWS) to defined(WIN32) || defined(OS2) to match existing putil.h
+ ustring.h (line 945) - Wrapped macro argument cs with { (const UChar *)cs } to match existing ustring.h
+ utypes.h (line 545) - Changed defined(U_WINDOWS) to defined(WIN32) to match existing utypes.h
+
+ * icu/unicode/localpointer.h: Added.
+ * icu/unicode/parseerr.h:
+ * icu/unicode/platform.h:
+ * icu/unicode/putil.h:
+ * icu/unicode/uchar.h:
+ * icu/unicode/uconfig.h:
+ * icu/unicode/uidna.h:
+ * icu/unicode/uiter.h:
+ * icu/unicode/umachine.h:
+ * icu/unicode/unorm.h:
+ * icu/unicode/urename.h:
+ * icu/unicode/uscript.h:
+ * icu/unicode/ustring.h:
+ * icu/unicode/utf.h:
+ * icu/unicode/utf16.h:
+ * icu/unicode/utf8.h:
+ * icu/unicode/utypes.h:
+ * icu/unicode/uvernum.h: Added.
+ * icu/unicode/uversion.h:
+
+2012-09-11 Matt Lilek <mrl@apple.com>
+
+ OS X port should compile with newer versions of clang
+ https://bugs.webkit.org/show_bug.cgi?id=96434
+
+ m_isTerminated is unused in the Hosted flavor of NetscapePluginStream.
+
+ Reviewed by Anders Carlsson.
+
+ * Plugins/Hosted/HostedNetscapePluginStream.h:
+ (HostedNetscapePluginStream):
+ * Plugins/Hosted/HostedNetscapePluginStream.mm:
+ (WebKit::HostedNetscapePluginStream::HostedNetscapePluginStream):
+
2012-09-10 Jer Noble <jer.noble@apple.com>
Unreviewed; rolling out r128081.
diff --git a/Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.h b/Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.h
index 34cea323a..a338029e3 100644
--- a/Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.h
+++ b/Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.h
@@ -89,7 +89,6 @@ private:
RefPtr<NetscapePluginInstanceProxy> m_instance;
uint32_t m_streamID;
- bool m_isTerminated;
RetainPtr<NSMutableURLRequest> m_request;
RetainPtr<NSURL> m_requestURL;
diff --git a/Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.mm b/Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.mm
index 7c84ede88..e2e5f54d2 100644
--- a/Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.mm
+++ b/Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.mm
@@ -54,7 +54,6 @@ DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, hostedNetscapePluginStreamC
HostedNetscapePluginStream::HostedNetscapePluginStream(NetscapePluginInstanceProxy* instance, uint32_t streamID, NSURLRequest *request)
: m_instance(instance)
, m_streamID(streamID)
- , m_isTerminated(false)
, m_request(AdoptNS, [request mutableCopy])
, m_requestURL([request URL])
, m_frameLoader(0)
@@ -73,7 +72,6 @@ HostedNetscapePluginStream::HostedNetscapePluginStream(NetscapePluginInstancePro
HostedNetscapePluginStream::HostedNetscapePluginStream(NetscapePluginInstanceProxy* instance, WebCore::FrameLoader* frameLoader)
: m_instance(instance)
, m_streamID(1)
- , m_isTerminated(false)
, m_frameLoader(frameLoader)
{
#ifndef NDEBUG
diff --git a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
index 43ad2984d..91656d847 100644
--- a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
+++ b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
@@ -45,6 +45,7 @@
#import <JavaScriptCore/Error.h>
#import <JavaScriptCore/JSLock.h>
#import <JavaScriptCore/PropertyNameArray.h>
+#import <JavaScriptCore/SourceCode.h>
#import <JavaScriptCore/StrongInlines.h>
#import <WebCore/CookieJar.h>
#import <WebCore/DocumentLoader.h>
@@ -56,7 +57,6 @@
#import <WebCore/SecurityOrigin.h>
#import <WebCore/ScriptController.h>
#import <WebCore/ScriptValue.h>
-#import <WebCore/StringSourceProvider.h>
#import <WebCore/UserGestureIndicator.h>
#import <WebCore/npruntime_impl.h>
#import <WebCore/runtime_object.h>
diff --git a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm
index 5b68a1f5f..64e44a4d0 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm
+++ b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm
@@ -1332,7 +1332,7 @@ NSDictionary *WebFrameLoaderClient::actionDictionary(const NavigationAction& act
if (const MouseEvent* mouseEvent = findMouseEvent(event)) {
WebElementDictionary *element = [[WebElementDictionary alloc]
- initWithHitTestResult:core(m_webFrame.get())->eventHandler()->hitTestResultAtPoint(mouseEvent->absoluteLocation())];
+ initWithHitTestResult:core(m_webFrame.get())->eventHandler()->hitTestResultAtPoint(mouseEvent->absoluteLocation(), false)];
[result setObject:element forKey:WebActionElementKey];
[element release];
diff --git a/Source/WebKit/mac/WebView/WebHTMLView.mm b/Source/WebKit/mac/WebView/WebHTMLView.mm
index 964995f9c..bfede8db6 100644
--- a/Source/WebKit/mac/WebView/WebHTMLView.mm
+++ b/Source/WebKit/mac/WebView/WebHTMLView.mm
@@ -6206,8 +6206,7 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde
Frame* coreFrame = core([self _frame]);
if (!coreFrame)
return nil;
- HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest::Active | (allow ? HitTestRequest::AllowShadowContent : 0);
- return [[[WebElementDictionary alloc] initWithHitTestResult:coreFrame->eventHandler()->hitTestResultAtPoint(IntPoint(point), hitType)] autorelease];
+ return [[[WebElementDictionary alloc] initWithHitTestResult:coreFrame->eventHandler()->hitTestResultAtPoint(IntPoint(point), allow)] autorelease];
}
- (NSUInteger)countMatchesForText:(NSString *)string inDOMRange:(DOMRange *)range options:(WebFindOptions)options limit:(NSUInteger)limit markMatches:(BOOL)markMatches
diff --git a/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm b/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm
index 6cea5a984..a44ce2334 100644
--- a/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm
+++ b/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm
@@ -203,8 +203,8 @@ NSString * const WebScriptErrorLineNumberKey = @"WebScriptErrorLineNumber";
if (!_private->debuggerCallFrame)
return nil;
- const String* functionName = _private->debuggerCallFrame->functionName();
- return functionName ? nsStringNilIfEmpty(*functionName) : nil;
+ String functionName = _private->debuggerCallFrame->functionName();
+ return nsStringNilIfEmpty(functionName);
}
// Returns the pending exception for this frame (nil if none).
diff --git a/Source/WebKit/mac/WebView/WebScriptDebugger.mm b/Source/WebKit/mac/WebView/WebScriptDebugger.mm
index 13c4f7cec..b8dba8102 100644
--- a/Source/WebKit/mac/WebView/WebScriptDebugger.mm
+++ b/Source/WebKit/mac/WebView/WebScriptDebugger.mm
@@ -51,11 +51,12 @@ using namespace WebCore;
- (void)_clearDebuggerCallFrame;
@end
-static NSString *toNSString(SourceProvider* s)
+static NSString *toNSString(SourceProvider* sourceProvider)
{
- if (!s->length())
+ const String& sourceString = sourceProvider->source();
+ if (sourceString.isEmpty())
return nil;
- return [NSString stringWithCharacters:s->data()->characters() length:s->length()];
+ return sourceString;
}
// Convert String to NSURL.
diff --git a/Source/WebKit/mac/icu/unicode/localpointer.h b/Source/WebKit/mac/icu/unicode/localpointer.h
new file mode 100644
index 000000000..b76a1f856
--- /dev/null
+++ b/Source/WebKit/mac/icu/unicode/localpointer.h
@@ -0,0 +1,300 @@
+/*
+*******************************************************************************
+*
+* Copyright (C) 2009-2010, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+*******************************************************************************
+* file name: localpointer.h
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2009nov13
+* created by: Markus W. Scherer
+*/
+
+#ifndef __LOCALPOINTER_H__
+#define __LOCALPOINTER_H__
+
+/**
+ * \file
+ * \brief C++ API: "Smart pointers" for use with and in ICU4C C++ code.
+ *
+ * These classes are inspired by
+ * - std::auto_ptr
+ * - boost::scoped_ptr & boost::scoped_array
+ * - Taligent Safe Pointers (TOnlyPointerTo)
+ *
+ * but none of those provide for all of the goals for ICU smart pointers:
+ * - Smart pointer owns the object and releases it when it goes out of scope.
+ * - No transfer of ownership via copy/assignment to reduce misuse. Simpler & more robust.
+ * - ICU-compatible: No exceptions.
+ * - Need to be able to orphan/release the pointer and its ownership.
+ * - Need variants for normal C++ object pointers, C++ arrays, and ICU C service objects.
+ *
+ * For details see http://site.icu-project.org/design/cpp/scoped_ptr
+ */
+
+#include "unicode/utypes.h"
+
+#if U_SHOW_CPLUSPLUS_API
+
+U_NAMESPACE_BEGIN
+
+/**
+ * "Smart pointer" base class; do not use directly: use LocalPointer etc.
+ *
+ * Base class for smart pointer classes that do not throw exceptions.
+ *
+ * Do not use this base class directly, since it does not delete its pointer.
+ * A subclass must implement methods that delete the pointer:
+ * Destructor and adoptInstead().
+ *
+ * There is no operator T *() provided because the programmer must decide
+ * whether to use getAlias() (without transfer of ownership) or orpan()
+ * (with transfer of ownership and NULLing of the pointer).
+ *
+ * @see LocalPointer
+ * @see LocalArray
+ * @see U_DEFINE_LOCAL_OPEN_POINTER
+ * @stable ICU 4.4
+ */
+template<typename T>
+class LocalPointerBase {
+public:
+ /**
+ * Constructor takes ownership.
+ * @param p simple pointer to an object that is adopted
+ * @stable ICU 4.4
+ */
+ explicit LocalPointerBase(T *p=NULL) : ptr(p) {}
+ /**
+ * Destructor deletes the object it owns.
+ * Subclass must override: Base class does nothing.
+ * @stable ICU 4.4
+ */
+ ~LocalPointerBase() { /* delete ptr; */ }
+ /**
+ * NULL check.
+ * @return TRUE if ==NULL
+ * @stable ICU 4.4
+ */
+ UBool isNull() const { return ptr==NULL; }
+ /**
+ * NULL check.
+ * @return TRUE if !=NULL
+ * @stable ICU 4.4
+ */
+ UBool isValid() const { return ptr!=NULL; }
+ /**
+ * Comparison with a simple pointer, so that existing code
+ * with ==NULL need not be changed.
+ * @param other simple pointer for comparison
+ * @return true if this pointer value equals other
+ * @stable ICU 4.4
+ */
+ bool operator==(const T *other) const { return ptr==other; }
+ /**
+ * Comparison with a simple pointer, so that existing code
+ * with !=NULL need not be changed.
+ * @param other simple pointer for comparison
+ * @return true if this pointer value differs from other
+ * @stable ICU 4.4
+ */
+ bool operator!=(const T *other) const { return ptr!=other; }
+ /**
+ * Access without ownership change.
+ * @return the pointer value
+ * @stable ICU 4.4
+ */
+ T *getAlias() const { return ptr; }
+ /**
+ * Access without ownership change.
+ * @return the pointer value as a reference
+ * @stable ICU 4.4
+ */
+ T &operator*() const { return *ptr; }
+ /**
+ * Access without ownership change.
+ * @return the pointer value
+ * @stable ICU 4.4
+ */
+ T *operator->() const { return ptr; }
+ /**
+ * Gives up ownership; the internal pointer becomes NULL.
+ * @return the pointer value;
+ * caller becomes responsible for deleting the object
+ * @stable ICU 4.4
+ */
+ T *orphan() {
+ T *p=ptr;
+ ptr=NULL;
+ return p;
+ }
+ /**
+ * Deletes the object it owns,
+ * and adopts (takes ownership of) the one passed in.
+ * Subclass must override: Base class does not delete the object.
+ * @param p simple pointer to an object that is adopted
+ * @stable ICU 4.4
+ */
+ void adoptInstead(T *p) {
+ // delete ptr;
+ ptr=p;
+ }
+protected:
+ T *ptr;
+private:
+ // No comparison operators with other LocalPointerBases.
+ bool operator==(const LocalPointerBase &other);
+ bool operator!=(const LocalPointerBase &other);
+ // No ownership transfer: No copy constructor, no assignment operator.
+ LocalPointerBase(const LocalPointerBase &other);
+ void operator=(const LocalPointerBase &other);
+ // No heap allocation. Use only on the stack.
+ static void * U_EXPORT2 operator new(size_t size);
+ static void * U_EXPORT2 operator new[](size_t size);
+#if U_HAVE_PLACEMENT_NEW
+ static void * U_EXPORT2 operator new(size_t, void *ptr);
+#endif
+};
+
+/**
+ * "Smart pointer" class, deletes objects via the standard C++ delete operator.
+ * For most methods see the LocalPointerBase base class.
+ *
+ * Usage example:
+ * \code
+ * LocalPointer<UnicodeString> s(new UnicodeString((UChar32)0x50005));
+ * int32_t length=s->length(); // 2
+ * UChar lead=s->charAt(0); // 0xd900
+ * if(some condition) { return; } // no need to explicitly delete the pointer
+ * s.adoptInstead(new UnicodeString((UChar)0xfffc));
+ * length=s->length(); // 1
+ * // no need to explicitly delete the pointer
+ * \endcode
+ *
+ * @see LocalPointerBase
+ * @stable ICU 4.4
+ */
+template<typename T>
+class LocalPointer : public LocalPointerBase<T> {
+public:
+ /**
+ * Constructor takes ownership.
+ * @param p simple pointer to an object that is adopted
+ * @stable ICU 4.4
+ */
+ explicit LocalPointer(T *p=NULL) : LocalPointerBase<T>(p) {}
+ /**
+ * Destructor deletes the object it owns.
+ * @stable ICU 4.4
+ */
+ ~LocalPointer() {
+ delete LocalPointerBase<T>::ptr;
+ }
+ /**
+ * Deletes the object it owns,
+ * and adopts (takes ownership of) the one passed in.
+ * @param p simple pointer to an object that is adopted
+ * @stable ICU 4.4
+ */
+ void adoptInstead(T *p) {
+ delete LocalPointerBase<T>::ptr;
+ LocalPointerBase<T>::ptr=p;
+ }
+};
+
+/**
+ * "Smart pointer" class, deletes objects via the C++ array delete[] operator.
+ * For most methods see the LocalPointerBase base class.
+ * Adds operator[] for array item access.
+ *
+ * Usage example:
+ * \code
+ * LocalArray<UnicodeString> a(new UnicodeString[2]);
+ * a[0].append((UChar)0x61);
+ * if(some condition) { return; } // no need to explicitly delete the array
+ * a.adoptInstead(new UnicodeString[4]);
+ * a[3].append((UChar)0x62).append((UChar)0x63).reverse();
+ * // no need to explicitly delete the array
+ * \endcode
+ *
+ * @see LocalPointerBase
+ * @stable ICU 4.4
+ */
+template<typename T>
+class LocalArray : public LocalPointerBase<T> {
+public:
+ /**
+ * Constructor takes ownership.
+ * @param p simple pointer to an array of T objects that is adopted
+ * @stable ICU 4.4
+ */
+ explicit LocalArray(T *p=NULL) : LocalPointerBase<T>(p) {}
+ /**
+ * Destructor deletes the array it owns.
+ * @stable ICU 4.4
+ */
+ ~LocalArray() {
+ delete[] LocalPointerBase<T>::ptr;
+ }
+ /**
+ * Deletes the array it owns,
+ * and adopts (takes ownership of) the one passed in.
+ * @param p simple pointer to an array of T objects that is adopted
+ * @stable ICU 4.4
+ */
+ void adoptInstead(T *p) {
+ delete[] LocalPointerBase<T>::ptr;
+ LocalPointerBase<T>::ptr=p;
+ }
+ /**
+ * Array item access (writable).
+ * No index bounds check.
+ * @param i array index
+ * @return reference to the array item
+ * @stable ICU 4.4
+ */
+ T &operator[](ptrdiff_t i) const { return LocalPointerBase<T>::ptr[i]; }
+};
+
+/**
+ * \def U_DEFINE_LOCAL_OPEN_POINTER
+ * "Smart pointer" definition macro, deletes objects via the closeFunction.
+ * Defines a subclass of LocalPointerBase which works just
+ * like LocalPointer<Type> except that this subclass will use the closeFunction
+ * rather than the C++ delete operator.
+ *
+ * Requirement: The closeFunction must tolerate a NULL pointer.
+ * (We could add a NULL check here but it is normally redundant.)
+ *
+ * Usage example:
+ * \code
+ * LocalUCaseMapPointer csm(ucasemap_open(localeID, options, &errorCode));
+ * utf8OutLength=ucasemap_utf8ToLower(csm.getAlias(),
+ * utf8Out, (int32_t)sizeof(utf8Out),
+ * utf8In, utf8InLength, &errorCode);
+ * if(U_FAILURE(errorCode)) { return; } // no need to explicitly delete the UCaseMap
+ * \endcode
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @stable ICU 4.4
+ */
+#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction) \
+ class LocalPointerClassName : public LocalPointerBase<Type> { \
+ public: \
+ explicit LocalPointerClassName(Type *p=NULL) : LocalPointerBase<Type>(p) {} \
+ ~LocalPointerClassName() { closeFunction(ptr); } \
+ void adoptInstead(Type *p) { \
+ closeFunction(ptr); \
+ ptr=p; \
+ } \
+ }
+
+U_NAMESPACE_END
+
+#endif /* U_SHOW_CPLUSPLUS_API */
+#endif /* __LOCALPOINTER_H__ */
diff --git a/Source/WebKit/mac/icu/unicode/parseerr.h b/Source/WebKit/mac/icu/unicode/parseerr.h
index d1ba39486..44ff00811 100644
--- a/Source/WebKit/mac/icu/unicode/parseerr.h
+++ b/Source/WebKit/mac/icu/unicode/parseerr.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2005, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -15,6 +15,10 @@
/**
+ * \file
+ * \brief C API: Parse Error Information
+ */
+/**
* The capacity of the context strings in UParseError.
* @stable ICU 2.0
*/
diff --git a/Source/WebKit/mac/icu/unicode/platform.h b/Source/WebKit/mac/icu/unicode/platform.h
index 9595a268a..3de40d256 100644
--- a/Source/WebKit/mac/icu/unicode/platform.h
+++ b/Source/WebKit/mac/icu/unicode/platform.h
@@ -1,11 +1,15 @@
/*
******************************************************************************
*
-* Copyright (C) 1997-2004, International Business Machines
+* Copyright (C) 1997-2010, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
*
+* Note: autoconf creates platform.h from platform.h.in at configure time.
+*
+******************************************************************************
+*
* FILE NAME : platform.h
*
* Date Name Description
@@ -16,23 +20,56 @@
******************************************************************************
*/
-/* Define the platform we're on. */
+#ifndef _PLATFORM_H
+#define _PLATFORM_H
+
+/**
+ * \file
+ * \brief Basic types for the platform
+ */
+
+/* This file should be included before uvernum.h. */
+#if defined(UVERNUM_H)
+# error Do not include unicode/uvernum.h before #including unicode/platform.h. Instead of unicode/uvernum.h, #include unicode/uversion.h
+#endif
+
+/**
+ * Determine wheter to enable auto cleanup of libraries.
+ * @internal
+ */
+#ifndef UCLN_NO_AUTO_CLEANUP
+#define UCLN_NO_AUTO_CLEANUP 1
+#endif
+
+/* Need platform.h when using CYGWINMSVC to get definitions above. Ignore everything else. */
+#ifndef CYGWINMSVC
+
+/** Define the platform we're on. */
#ifndef U_DARWIN
#define U_DARWIN
#endif
-/* Define whether inttypes.h is available */
+/**
+ * \def U_HAVE_DIRENT_H
+ * Define whether dirent.h is available
+ * @internal
+ */
+#ifndef U_HAVE_DIRENT_H
+#define U_HAVE_DIRENT_H 1
+#endif
+
+/** Define whether inttypes.h is available */
#ifndef U_HAVE_INTTYPES_H
#define U_HAVE_INTTYPES_H 1
#endif
-/*
+/**
* Define what support for C++ streams is available.
- * If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
+ * If U_IOSTREAM_SOURCE is set to 199711, then &lt;iostream&gt; is available
* (1997711 is the date the ISO/IEC C++ FDIS was published), and then
* one should qualify streams using the std namespace in ICU header
* files.
- * If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
+ * If U_IOSTREAM_SOURCE is set to 198506, then &lt;iostream.h&gt; is
* available instead (198506 is the date when Stroustrup published
* "An Extensible I/O Facility for C++" at the summer USENIX conference).
* If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
@@ -44,7 +81,19 @@
#define U_IOSTREAM_SOURCE 199711
#endif
-/* Determines whether specific types are available */
+/**
+ * \def U_HAVE_STD_STRING
+ * Define whether the standard C++ (STL) &lt;string&gt; header is available.
+ * For platforms that do not use platform.h and do not define this constant
+ * in their platform-specific headers, std_string.h defaults
+ * U_HAVE_STD_STRING to 1.
+ * @internal
+ */
+#ifndef U_HAVE_STD_STRING
+#define U_HAVE_STD_STRING 1
+#endif
+
+/** @{ Determines whether specific types are available */
#ifndef U_HAVE_INT8_T
#define U_HAVE_INT8_T 1
#endif
@@ -77,74 +126,10 @@
#define U_HAVE_UINT64_T 0
#endif
-/*===========================================================================*/
-/* Generic data types */
-/*===========================================================================*/
-
-#include <sys/types.h>
-
-/* If your platform does not have the <inttypes.h> header, you may
- need to edit the typedefs below. */
-#if U_HAVE_INTTYPES_H
-
-/* autoconf 2.13 sometimes can't properly find the data types in <inttypes.h> */
-/* os/390 needs <inttypes.h>, but it doesn't have int8_t, and it sometimes */
-/* doesn't have uint8_t depending on the OS version. */
-/* So we have this work around. */
-#ifdef OS390
-/* The features header is needed to get (u)int64_t sometimes. */
-#include <features.h>
-#if ! U_HAVE_INT8_T
-typedef signed char int8_t;
-#endif
-#if !defined(__uint8_t)
-#define __uint8_t 1
-typedef unsigned char uint8_t;
-#endif
-#endif /* OS390 */
-
-#include <inttypes.h>
-
-#else /* U_HAVE_INTTYPES_H */
-
-#if ! U_HAVE_INT8_T
-typedef signed char int8_t;
-#endif
-
-#if ! U_HAVE_UINT8_T
-typedef unsigned char uint8_t;
-#endif
-
-#if ! U_HAVE_INT16_T
-typedef signed short int16_t;
-#endif
-
-#if ! U_HAVE_UINT16_T
-typedef unsigned short uint16_t;
-#endif
-
-#if ! U_HAVE_INT32_T
-typedef signed int int32_t;
-#endif
-
-#if ! U_HAVE_UINT32_T
-typedef unsigned int uint32_t;
-#endif
-
-#if ! U_HAVE_INT64_T
- typedef signed long long int64_t;
-/* else we may not have a 64-bit type */
-#endif
-
-#if ! U_HAVE_UINT64_T
- typedef unsigned long long uint64_t;
-/* else we may not have a 64-bit type */
-#endif
-
-#endif
+/** @} */
/*===========================================================================*/
-/* Compiler and environment features */
+/** @{ Compiler and environment features */
/*===========================================================================*/
/* Define whether namespace is supported */
@@ -162,7 +147,14 @@ typedef unsigned int uint32_t;
#endif
/* 1 or 0 to enable or disable threads. If undefined, default is: enable threads. */
+#ifndef ICU_USE_THREADS
#define ICU_USE_THREADS 1
+#endif
+
+/* On strong memory model CPUs (e.g. x86 CPUs), we use a safe & quick double check lock. */
+#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+#define UMTX_STRONG_MEMORY_MODEL 1
+#endif
#ifndef U_DEBUG
#define U_DEBUG 0
@@ -192,41 +184,106 @@ typedef unsigned int uint32_t;
#define U_ENABLE_TRACING 1
#endif
-/* Define the library suffix in a C syntax. */
-#define U_HAVE_LIB_SUFFIX 0
-#define U_LIB_SUFFIX_C_NAME
-#define U_LIB_SUFFIX_C_NAME_STRING ""
+/**
+ * Whether to enable Dynamic loading in ICU
+ * @internal
+ */
+#ifndef U_ENABLE_DYLOAD
+#define U_ENABLE_DYLOAD 1
+#endif
+
+/**
+ * Whether to test Dynamic loading as an OS capabilty
+ * @internal
+ */
+#ifndef U_CHECK_DYLOAD
+#define U_CHECK_DYLOAD 1
+#endif
+
+
+/** Do we allow ICU users to use the draft APIs by default? */
+#ifndef U_DEFAULT_SHOW_DRAFT
+#define U_DEFAULT_SHOW_DRAFT 1
+#endif
+
+/** @} */
/*===========================================================================*/
-/* Character data types */
+/** @{ Character data types */
/*===========================================================================*/
-#if defined(OS390) || defined(OS400)
+#if ((defined(OS390) && (!defined(__CHARSET_LIB) || !__CHARSET_LIB))) || defined(OS400)
# define U_CHARSET_FAMILY 1
#endif
+/** @} */
+
/*===========================================================================*/
-/* Information about wchar support */
+/** @{ Information about wchar support */
/*===========================================================================*/
+#ifndef U_HAVE_WCHAR_H
#define U_HAVE_WCHAR_H 1
+#endif
+
+#ifndef U_SIZEOF_WCHAR_T
#define U_SIZEOF_WCHAR_T 4
+#endif
+#ifndef U_HAVE_WCSCPY
#define U_HAVE_WCSCPY 1
+#endif
+
+/** @} */
+
+/**
+ * @{
+ * \def U_DECLARE_UTF16
+ * Do not use this macro. Use the UNICODE_STRING or U_STRING_DECL macros
+ * instead.
+ * @internal
+ *
+ * \def U_GNUC_UTF16_STRING
+ * @internal
+ */
+#ifndef U_GNUC_UTF16_STRING
+#define U_GNUC_UTF16_STRING 0
+#endif
+#if 1 || defined(U_CHECK_UTF16_STRING)
+#if (defined(__xlC__) && defined(__IBM_UTF_LITERAL) && U_SIZEOF_WCHAR_T != 2) \
+ || (defined(__HP_aCC) && __HP_aCC >= 035000) \
+ || (defined(__HP_cc) && __HP_cc >= 111106) \
+ || U_GNUC_UTF16_STRING
+#define U_DECLARE_UTF16(string) u ## string
+#elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550)
+/* || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x580) */
+/* Sun's C compiler has issues with this notation, and it's unreliable. */
+#define U_DECLARE_UTF16(string) U ## string
+#elif U_SIZEOF_WCHAR_T == 2 \
+ && (U_CHARSET_FAMILY == 0 || ((defined(OS390) || defined(OS400)) && defined(__UCS2__)))
+#define U_DECLARE_UTF16(string) L ## string
+#endif
+#endif
+
+/** @} */
/*===========================================================================*/
-/* Information about POSIX support */
+/** @{ Information about POSIX support */
/*===========================================================================*/
-#define U_HAVE_NL_LANGINFO 1
+#ifndef U_HAVE_NL_LANGINFO_CODESET
#define U_HAVE_NL_LANGINFO_CODESET 1
+#endif
+
+#ifndef U_NL_LANGINFO_CODESET
#define U_NL_LANGINFO_CODESET CODESET
+#endif
#if 1
#define U_TZSET tzset
#endif
#if 0
-#define U_TIMEZONE
+#define U_TIMEZONE timezone
#endif
#if 1
#define U_TZNAME tzname
@@ -235,33 +292,110 @@ typedef unsigned int uint32_t;
#define U_HAVE_MMAP 1
#define U_HAVE_POPEN 1
+/** @} */
+
/*===========================================================================*/
-/* Symbol import-export control */
+/** @{ Symbol import-export control */
/*===========================================================================*/
+#if 1
+#define U_EXPORT __attribute__((visibility("default")))
+#elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) \
+ || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x550)
+#define U_EXPORT __global
+/*#elif defined(__HP_aCC) || defined(__HP_cc)
+#define U_EXPORT __declspec(dllexport)*/
+#else
#define U_EXPORT
+#endif
+
/* U_CALLCONV is releated to U_EXPORT2 */
#define U_EXPORT2
/* cygwin needs to export/import data */
-#ifdef U_CYGWIN
+#if defined(U_CYGWIN) && !defined(__GNUC__)
#define U_IMPORT __declspec(dllimport)
#else
#define U_IMPORT
#endif
+/* @} */
+
/*===========================================================================*/
-/* Code alignment and C function inlining */
+/** @{ Code alignment and C function inlining */
/*===========================================================================*/
#ifndef U_INLINE
-#define U_INLINE inline
+# ifdef __cplusplus
+# define U_INLINE inline
+# else
+# define U_INLINE __inline__
+# endif
#endif
+#ifndef U_ALIGN_CODE
#define U_ALIGN_CODE(n)
+#endif
+
+/** @} */
/*===========================================================================*/
-/* Programs used by ICU code */
+/** @{ GCC built in functions for atomic memory operations */
/*===========================================================================*/
+/**
+ * \def U_HAVE_GCC_ATOMICS
+ * @internal
+ */
+#ifndef U_HAVE_GCC_ATOMICS
+#define U_HAVE_GCC_ATOMICS 1
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/** @{ Programs used by ICU code */
+/*===========================================================================*/
+
+/**
+ * \def U_MAKE
+ * What program to execute to run 'make'
+ */
+#ifndef U_MAKE
#define U_MAKE "/usr/bin/gnumake"
+#endif
+
+/** @} */
+
+#endif /* CYGWINMSVC */
+
+/*===========================================================================*/
+/* Custom icu entry point renaming */
+/*===========================================================================*/
+
+/**
+ * Define the library suffix with C syntax.
+ * @internal
+ */
+# define U_LIB_SUFFIX_C_NAME
+/**
+ * Define the library suffix as a string with C syntax
+ * @internal
+ */
+# define U_LIB_SUFFIX_C_NAME_STRING ""
+/**
+ * 1 if a custom library suffix is set
+ * @internal
+ */
+# define U_HAVE_LIB_SUFFIX 0
+
+#if U_HAVE_LIB_SUFFIX
+# ifndef U_ICU_ENTRY_POINT_RENAME
+/* Renaming pattern: u_strcpy_41_suffix */
+# define U_ICU_ENTRY_POINT_RENAME(x) x ## _ ## 46 ##
+# define U_DEF_ICUDATA_ENTRY_POINT(major, minor) icudt####major##minor##_dat
+
+# endif
+#endif
+
+#endif
diff --git a/Source/WebKit/mac/icu/unicode/ptypes.h b/Source/WebKit/mac/icu/unicode/ptypes.h
new file mode 100644
index 000000000..1f34d2f84
--- /dev/null
+++ b/Source/WebKit/mac/icu/unicode/ptypes.h
@@ -0,0 +1,92 @@
+/*
+******************************************************************************
+*
+* Copyright (C) 1997-2010, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+******************************************************************************
+*
+* FILE NAME : ptypes.h
+*
+* Date Name Description
+* 05/13/98 nos Creation (content moved here from ptypes.h).
+* 03/02/99 stephen Added AS400 support.
+* 03/30/99 stephen Added Linux support.
+* 04/13/99 stephen Reworked for autoconf.
+* 09/18/08 srl Moved basic types back to ptypes.h from platform.h
+******************************************************************************
+*/
+
+#ifndef _PTYPES_H
+#define _PTYPES_H
+
+#include <sys/types.h>
+
+#include "unicode/platform.h"
+
+/*===========================================================================*/
+/* Generic data types */
+/*===========================================================================*/
+
+/* If your platform does not have the <inttypes.h> header, you may
+ need to edit the typedefs below. */
+#if U_HAVE_INTTYPES_H
+
+/* autoconf 2.13 sometimes can't properly find the data types in <inttypes.h> */
+/* os/390 needs <inttypes.h>, but it doesn't have int8_t, and it sometimes */
+/* doesn't have uint8_t depending on the OS version. */
+/* So we have this work around. */
+#ifdef OS390
+/* The features header is needed to get (u)int64_t sometimes. */
+#include <features.h>
+#if ! U_HAVE_INT8_T
+typedef signed char int8_t;
+#endif
+#if !defined(__uint8_t)
+#define __uint8_t 1
+typedef unsigned char uint8_t;
+#endif
+#endif /* OS390 */
+
+#include <inttypes.h>
+
+#else /* U_HAVE_INTTYPES_H */
+
+#if ! U_HAVE_INT8_T
+typedef signed char int8_t;
+#endif
+
+#if ! U_HAVE_UINT8_T
+typedef unsigned char uint8_t;
+#endif
+
+#if ! U_HAVE_INT16_T
+typedef signed short int16_t;
+#endif
+
+#if ! U_HAVE_UINT16_T
+typedef unsigned short uint16_t;
+#endif
+
+#if ! U_HAVE_INT32_T
+typedef signed int int32_t;
+#endif
+
+#if ! U_HAVE_UINT32_T
+typedef unsigned int uint32_t;
+#endif
+
+#if ! U_HAVE_INT64_T
+ typedef signed long long int64_t;
+/* else we may not have a 64-bit type */
+#endif
+
+#if ! U_HAVE_UINT64_T
+ typedef unsigned long long uint64_t;
+/* else we may not have a 64-bit type */
+#endif
+
+#endif /* U_HAVE_INTTYPES_H */
+
+#endif /* _PTYPES_H */
+
diff --git a/Source/WebKit/mac/icu/unicode/putil.h b/Source/WebKit/mac/icu/unicode/putil.h
index 685df530e..71d5d2643 100644
--- a/Source/WebKit/mac/icu/unicode/putil.h
+++ b/Source/WebKit/mac/icu/unicode/putil.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1997-2004, International Business Machines
+* Copyright (C) 1997-2009, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -25,8 +25,12 @@
#define PUTIL_H
#include "unicode/utypes.h"
+ /**
+ * \file
+ * \brief C API: Platform Utilities
+ */
-/* Define this to 1 if your platform supports IEEE 754 floating point,
+/** Define this to 1 if your platform supports IEEE 754 floating point,
to 0 if it does not. */
#ifndef IEEE_754
# define IEEE_754 1
@@ -54,7 +58,11 @@
* If u_setDataDirectory() has been called, that is it, otherwise
* if the ICU_DATA environment variable is set, use that, otherwise
* If a data directory was specifed at ICU build time
- * (#define ICU_DATA_DIR "path"), use that,
+ * <code>
+ * \code
+ * #define ICU_DATA_DIR "path"
+ * \endcode
+ * </code> use that,
* otherwise no data directory is available.
*
* @return the data directory, or an empty string ("") if no data directory has
@@ -85,6 +93,7 @@ U_STABLE const char* U_EXPORT2 u_getDataDirectory(void);
*/
U_STABLE void U_EXPORT2 u_setDataDirectory(const char *directory);
+#if !U_CHARSET_IS_UTF8
/**
* Please use ucnv_getDefaultName() instead.
* Return the default codepage for this platform and locale.
@@ -94,6 +103,7 @@ U_STABLE void U_EXPORT2 u_setDataDirectory(const char *directory);
* @internal
*/
U_INTERNAL const char* U_EXPORT2 uprv_getDefaultCodepage(void);
+#endif
/**
* Please use uloc_getDefault() instead.
@@ -107,6 +117,7 @@ U_INTERNAL const char* U_EXPORT2 uprv_getDefaultCodepage(void);
U_INTERNAL const char* U_EXPORT2 uprv_getDefaultLocaleID(void);
/**
+ * @{
* Filesystem file and path separator characters.
* Example: '/' and ':' on Unix, '\\' and ';' on Windows.
* @stable ICU 2.0
@@ -134,6 +145,8 @@ U_INTERNAL const char* U_EXPORT2 uprv_getDefaultLocaleID(void);
# define U_PATH_SEP_STRING ":"
#endif
+/** @} */
+
/**
* Convert char characters to UChar characters.
* This utility function is useful only for "invariant characters"
diff --git a/Source/WebKit/mac/icu/unicode/uchar.h b/Source/WebKit/mac/icu/unicode/uchar.h
index 7fd490c81..93aa66320 100644
--- a/Source/WebKit/mac/icu/unicode/uchar.h
+++ b/Source/WebKit/mac/icu/unicode/uchar.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1997-2004, International Business Machines
+* Copyright (C) 1997-2010, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -39,7 +39,7 @@ U_CDECL_BEGIN
* @see u_getUnicodeVersion
* @stable ICU 2.0
*/
-#define U_UNICODE_VERSION "4.0.1"
+#define U_UNICODE_VERSION "6.0"
/**
* \file
@@ -56,12 +56,12 @@ U_CDECL_BEGIN
*
* For more information see
* "About the Unicode Character Database" (http://www.unicode.org/ucd/)
- * and the ICU User Guide chapter on Properties (http://oss.software.ibm.com/icu/userguide/properties.html).
+ * and the ICU User Guide chapter on Properties (http://icu-project.org/userguide/properties.html).
*
* Many functions are designed to match java.lang.Character functions.
* See the individual function documentation,
- * and see the JDK 1.4.1 java.lang.Character documentation
- * at http://java.sun.com/j2se/1.4.1/docs/api/java/lang/Character.html
+ * and see the JDK 1.4 java.lang.Character documentation
+ * at http://java.sun.com/j2se/1.4/docs/api/java/lang/Character.html
*
* There are also functions that provide easy migration from C/POSIX functions
* like isblank(). Their use is generally discouraged because the C/POSIX
@@ -77,12 +77,33 @@ U_CDECL_BEGIN
* (In ICU, BreakIterator is the most sophisticated API for word boundaries.)
* Another example: There is no "istitle()" class for titlecase characters.
*
- * A summary of the behavior of some C/POSIX character classification implementations
- * for Unicode is available at http://oss.software.ibm.com/cvs/icu/~checkout~/icuhtml/design/posix_classes.html
- *
- * <strong>Important</strong>:
- * The behavior of the ICU C/POSIX-style character classification
- * functions is subject to change according to discussion of the above summary.
+ * ICU 3.4 and later provides API access for all twelve C/POSIX character classes.
+ * ICU implements them according to the Standard Recommendations in
+ * Annex C: Compatibility Properties of UTS #18 Unicode Regular Expressions
+ * (http://www.unicode.org/reports/tr18/#Compatibility_Properties).
+ *
+ * API access for C/POSIX character classes is as follows:
+ * - alpha: u_isUAlphabetic(c) or u_hasBinaryProperty(c, UCHAR_ALPHABETIC)
+ * - lower: u_isULowercase(c) or u_hasBinaryProperty(c, UCHAR_LOWERCASE)
+ * - upper: u_isUUppercase(c) or u_hasBinaryProperty(c, UCHAR_UPPERCASE)
+ * - punct: u_ispunct(c)
+ * - digit: u_isdigit(c) or u_charType(c)==U_DECIMAL_DIGIT_NUMBER
+ * - xdigit: u_isxdigit(c) or u_hasBinaryProperty(c, UCHAR_POSIX_XDIGIT)
+ * - alnum: u_hasBinaryProperty(c, UCHAR_POSIX_ALNUM)
+ * - space: u_isUWhiteSpace(c) or u_hasBinaryProperty(c, UCHAR_WHITE_SPACE)
+ * - blank: u_isblank(c) or u_hasBinaryProperty(c, UCHAR_POSIX_BLANK)
+ * - cntrl: u_charType(c)==U_CONTROL_CHAR
+ * - graph: u_hasBinaryProperty(c, UCHAR_POSIX_GRAPH)
+ * - print: u_hasBinaryProperty(c, UCHAR_POSIX_PRINT)
+ *
+ * Note: Some of the u_isxyz() functions in uchar.h predate, and do not match,
+ * the Standard Recommendations in UTS #18. Instead, they match Java
+ * functions according to their API documentation.
+ *
+ * \htmlonly
+ * The C/POSIX character classes are also available in UnicodeSet patterns,
+ * using patterns like [:graph:] or \p{graph}.
+ * \endhtmlonly
*
* Note: There are several ICU whitespace functions.
* Comparison:
@@ -166,200 +187,229 @@ typedef enum UProperty {
/** First constant for binary Unicode properties. @stable ICU 2.1 */
UCHAR_BINARY_START=UCHAR_ALPHABETIC,
/** Binary property ASCII_Hex_Digit. 0-9 A-F a-f @stable ICU 2.1 */
- UCHAR_ASCII_HEX_DIGIT,
+ UCHAR_ASCII_HEX_DIGIT=1,
/** Binary property Bidi_Control.
Format controls which have specific functions
in the Bidi Algorithm. @stable ICU 2.1 */
- UCHAR_BIDI_CONTROL,
+ UCHAR_BIDI_CONTROL=2,
/** Binary property Bidi_Mirrored.
Characters that may change display in RTL text.
Same as u_isMirrored.
See Bidi Algorithm, UTR 9. @stable ICU 2.1 */
- UCHAR_BIDI_MIRRORED,
+ UCHAR_BIDI_MIRRORED=3,
/** Binary property Dash. Variations of dashes. @stable ICU 2.1 */
- UCHAR_DASH,
+ UCHAR_DASH=4,
/** Binary property Default_Ignorable_Code_Point (new in Unicode 3.2).
Ignorable in most processing.
<2060..206F, FFF0..FFFB, E0000..E0FFF>+Other_Default_Ignorable_Code_Point+(Cf+Cc+Cs-White_Space) @stable ICU 2.1 */
- UCHAR_DEFAULT_IGNORABLE_CODE_POINT,
+ UCHAR_DEFAULT_IGNORABLE_CODE_POINT=5,
/** Binary property Deprecated (new in Unicode 3.2).
The usage of deprecated characters is strongly discouraged. @stable ICU 2.1 */
- UCHAR_DEPRECATED,
+ UCHAR_DEPRECATED=6,
/** Binary property Diacritic. Characters that linguistically modify
the meaning of another character to which they apply. @stable ICU 2.1 */
- UCHAR_DIACRITIC,
+ UCHAR_DIACRITIC=7,
/** Binary property Extender.
Extend the value or shape of a preceding alphabetic character,
e.g., length and iteration marks. @stable ICU 2.1 */
- UCHAR_EXTENDER,
+ UCHAR_EXTENDER=8,
/** Binary property Full_Composition_Exclusion.
CompositionExclusions.txt+Singleton Decompositions+
Non-Starter Decompositions. @stable ICU 2.1 */
- UCHAR_FULL_COMPOSITION_EXCLUSION,
+ UCHAR_FULL_COMPOSITION_EXCLUSION=9,
/** Binary property Grapheme_Base (new in Unicode 3.2).
For programmatic determination of grapheme cluster boundaries.
[0..10FFFF]-Cc-Cf-Cs-Co-Cn-Zl-Zp-Grapheme_Link-Grapheme_Extend-CGJ @stable ICU 2.1 */
- UCHAR_GRAPHEME_BASE,
+ UCHAR_GRAPHEME_BASE=10,
/** Binary property Grapheme_Extend (new in Unicode 3.2).
For programmatic determination of grapheme cluster boundaries.
Me+Mn+Mc+Other_Grapheme_Extend-Grapheme_Link-CGJ @stable ICU 2.1 */
- UCHAR_GRAPHEME_EXTEND,
+ UCHAR_GRAPHEME_EXTEND=11,
/** Binary property Grapheme_Link (new in Unicode 3.2).
For programmatic determination of grapheme cluster boundaries. @stable ICU 2.1 */
- UCHAR_GRAPHEME_LINK,
+ UCHAR_GRAPHEME_LINK=12,
/** Binary property Hex_Digit.
Characters commonly used for hexadecimal numbers. @stable ICU 2.1 */
- UCHAR_HEX_DIGIT,
+ UCHAR_HEX_DIGIT=13,
/** Binary property Hyphen. Dashes used to mark connections
between pieces of words, plus the Katakana middle dot. @stable ICU 2.1 */
- UCHAR_HYPHEN,
+ UCHAR_HYPHEN=14,
/** Binary property ID_Continue.
Characters that can continue an identifier.
DerivedCoreProperties.txt also says "NOTE: Cf characters should be filtered out."
ID_Start+Mn+Mc+Nd+Pc @stable ICU 2.1 */
- UCHAR_ID_CONTINUE,
+ UCHAR_ID_CONTINUE=15,
/** Binary property ID_Start.
Characters that can start an identifier.
Lu+Ll+Lt+Lm+Lo+Nl @stable ICU 2.1 */
- UCHAR_ID_START,
+ UCHAR_ID_START=16,
/** Binary property Ideographic.
CJKV ideographs. @stable ICU 2.1 */
- UCHAR_IDEOGRAPHIC,
+ UCHAR_IDEOGRAPHIC=17,
/** Binary property IDS_Binary_Operator (new in Unicode 3.2).
For programmatic determination of
Ideographic Description Sequences. @stable ICU 2.1 */
- UCHAR_IDS_BINARY_OPERATOR,
+ UCHAR_IDS_BINARY_OPERATOR=18,
/** Binary property IDS_Trinary_Operator (new in Unicode 3.2).
For programmatic determination of
Ideographic Description Sequences. @stable ICU 2.1 */
- UCHAR_IDS_TRINARY_OPERATOR,
+ UCHAR_IDS_TRINARY_OPERATOR=19,
/** Binary property Join_Control.
Format controls for cursive joining and ligation. @stable ICU 2.1 */
- UCHAR_JOIN_CONTROL,
+ UCHAR_JOIN_CONTROL=20,
/** Binary property Logical_Order_Exception (new in Unicode 3.2).
Characters that do not use logical order and
require special handling in most processing. @stable ICU 2.1 */
- UCHAR_LOGICAL_ORDER_EXCEPTION,
+ UCHAR_LOGICAL_ORDER_EXCEPTION=21,
/** Binary property Lowercase. Same as u_isULowercase, different from u_islower.
Ll+Other_Lowercase @stable ICU 2.1 */
- UCHAR_LOWERCASE,
+ UCHAR_LOWERCASE=22,
/** Binary property Math. Sm+Other_Math @stable ICU 2.1 */
- UCHAR_MATH,
+ UCHAR_MATH=23,
/** Binary property Noncharacter_Code_Point.
Code points that are explicitly defined as illegal
for the encoding of characters. @stable ICU 2.1 */
- UCHAR_NONCHARACTER_CODE_POINT,
+ UCHAR_NONCHARACTER_CODE_POINT=24,
/** Binary property Quotation_Mark. @stable ICU 2.1 */
- UCHAR_QUOTATION_MARK,
+ UCHAR_QUOTATION_MARK=25,
/** Binary property Radical (new in Unicode 3.2).
For programmatic determination of
Ideographic Description Sequences. @stable ICU 2.1 */
- UCHAR_RADICAL,
+ UCHAR_RADICAL=26,
/** Binary property Soft_Dotted (new in Unicode 3.2).
Characters with a "soft dot", like i or j.
An accent placed on these characters causes
the dot to disappear. @stable ICU 2.1 */
- UCHAR_SOFT_DOTTED,
+ UCHAR_SOFT_DOTTED=27,
/** Binary property Terminal_Punctuation.
Punctuation characters that generally mark
the end of textual units. @stable ICU 2.1 */
- UCHAR_TERMINAL_PUNCTUATION,
+ UCHAR_TERMINAL_PUNCTUATION=28,
/** Binary property Unified_Ideograph (new in Unicode 3.2).
For programmatic determination of
Ideographic Description Sequences. @stable ICU 2.1 */
- UCHAR_UNIFIED_IDEOGRAPH,
+ UCHAR_UNIFIED_IDEOGRAPH=29,
/** Binary property Uppercase. Same as u_isUUppercase, different from u_isupper.
Lu+Other_Uppercase @stable ICU 2.1 */
- UCHAR_UPPERCASE,
+ UCHAR_UPPERCASE=30,
/** Binary property White_Space.
Same as u_isUWhiteSpace, different from u_isspace and u_isWhitespace.
Space characters+TAB+CR+LF-ZWSP-ZWNBSP @stable ICU 2.1 */
- UCHAR_WHITE_SPACE,
+ UCHAR_WHITE_SPACE=31,
/** Binary property XID_Continue.
ID_Continue modified to allow closure under
normalization forms NFKC and NFKD. @stable ICU 2.1 */
- UCHAR_XID_CONTINUE,
+ UCHAR_XID_CONTINUE=32,
/** Binary property XID_Start. ID_Start modified to allow
closure under normalization forms NFKC and NFKD. @stable ICU 2.1 */
- UCHAR_XID_START,
+ UCHAR_XID_START=33,
/** Binary property Case_Sensitive. Either the source of a case
mapping or _in_ the target of a case mapping. Not the same as
the general category Cased_Letter. @stable ICU 2.6 */
- UCHAR_CASE_SENSITIVE,
+ UCHAR_CASE_SENSITIVE=34,
/** Binary property STerm (new in Unicode 4.0.1).
Sentence Terminal. Used in UAX #29: Text Boundaries
(http://www.unicode.org/reports/tr29/)
- @draft ICU 3.0 */
- UCHAR_S_TERM,
+ @stable ICU 3.0 */
+ UCHAR_S_TERM=35,
/** Binary property Variation_Selector (new in Unicode 4.0.1).
Indicates all those characters that qualify as Variation Selectors.
For details on the behavior of these characters,
see StandardizedVariants.html and 15.6 Variation Selectors.
- @draft ICU 3.0 */
- UCHAR_VARIATION_SELECTOR,
+ @stable ICU 3.0 */
+ UCHAR_VARIATION_SELECTOR=36,
/** Binary property NFD_Inert.
ICU-specific property for characters that are inert under NFD,
i.e., they do not interact with adjacent characters.
- Used for example in normalizing transforms in incremental mode
- to find the boundary of safely normalizable text despite possible
- text additions.
-
- There is one such property per normalization form.
- These properties are computed as follows - an inert character is:
- a) unassigned, or ALL of the following:
- b) of combining class 0.
- c) not decomposed by this normalization form.
- AND if NFC or NFKC,
- d) can never compose with a previous character.
- e) can never compose with a following character.
- f) can never change if another character is added.
- Example: a-breve might satisfy all but f, but if you
- add an ogonek it changes to a-ogonek + breve
-
- See also com.ibm.text.UCD.NFSkippable in the ICU4J repository,
- and icu/source/common/unormimp.h .
- @draft ICU 3.0 */
- UCHAR_NFD_INERT,
+ See the documentation for the Normalizer2 class and the
+ Normalizer2::isInert() method.
+ @stable ICU 3.0 */
+ UCHAR_NFD_INERT=37,
/** Binary property NFKD_Inert.
ICU-specific property for characters that are inert under NFKD,
i.e., they do not interact with adjacent characters.
- Used for example in normalizing transforms in incremental mode
- to find the boundary of safely normalizable text despite possible
- text additions.
- @see UCHAR_NFD_INERT
- @draft ICU 3.0 */
- UCHAR_NFKD_INERT,
+ See the documentation for the Normalizer2 class and the
+ Normalizer2::isInert() method.
+ @stable ICU 3.0 */
+ UCHAR_NFKD_INERT=38,
/** Binary property NFC_Inert.
ICU-specific property for characters that are inert under NFC,
i.e., they do not interact with adjacent characters.
- Used for example in normalizing transforms in incremental mode
- to find the boundary of safely normalizable text despite possible
- text additions.
- @see UCHAR_NFD_INERT
- @draft ICU 3.0 */
- UCHAR_NFC_INERT,
+ See the documentation for the Normalizer2 class and the
+ Normalizer2::isInert() method.
+ @stable ICU 3.0 */
+ UCHAR_NFC_INERT=39,
/** Binary property NFKC_Inert.
ICU-specific property for characters that are inert under NFKC,
i.e., they do not interact with adjacent characters.
- Used for example in normalizing transforms in incremental mode
- to find the boundary of safely normalizable text despite possible
- text additions.
- @see UCHAR_NFD_INERT
- @draft ICU 3.0 */
- UCHAR_NFKC_INERT,
+ See the documentation for the Normalizer2 class and the
+ Normalizer2::isInert() method.
+ @stable ICU 3.0 */
+ UCHAR_NFKC_INERT=40,
/** Binary Property Segment_Starter.
ICU-specific property for characters that are starters in terms of
Unicode normalization and combining character sequences.
They have ccc=0 and do not occur in non-initial position of the
canonical decomposition of any character
- (like " in NFD(a-umlaut) and a Jamo T in an NFD(Hangul LVT)).
+ (like a-umlaut in NFD and a Jamo T in an NFD(Hangul LVT)).
ICU uses this property for segmenting a string for generating a set of
canonically equivalent strings, e.g. for canonical closure while
processing collation tailoring rules.
- @draft ICU 3.0 */
- UCHAR_SEGMENT_STARTER,
+ @stable ICU 3.0 */
+ UCHAR_SEGMENT_STARTER=41,
+ /** Binary property Pattern_Syntax (new in Unicode 4.1).
+ See UAX #31 Identifier and Pattern Syntax
+ (http://www.unicode.org/reports/tr31/)
+ @stable ICU 3.4 */
+ UCHAR_PATTERN_SYNTAX=42,
+ /** Binary property Pattern_White_Space (new in Unicode 4.1).
+ See UAX #31 Identifier and Pattern Syntax
+ (http://www.unicode.org/reports/tr31/)
+ @stable ICU 3.4 */
+ UCHAR_PATTERN_WHITE_SPACE=43,
+ /** Binary property alnum (a C/POSIX character class).
+ Implemented according to the UTS #18 Annex C Standard Recommendation.
+ See the uchar.h file documentation.
+ @stable ICU 3.4 */
+ UCHAR_POSIX_ALNUM=44,
+ /** Binary property blank (a C/POSIX character class).
+ Implemented according to the UTS #18 Annex C Standard Recommendation.
+ See the uchar.h file documentation.
+ @stable ICU 3.4 */
+ UCHAR_POSIX_BLANK=45,
+ /** Binary property graph (a C/POSIX character class).
+ Implemented according to the UTS #18 Annex C Standard Recommendation.
+ See the uchar.h file documentation.
+ @stable ICU 3.4 */
+ UCHAR_POSIX_GRAPH=46,
+ /** Binary property print (a C/POSIX character class).
+ Implemented according to the UTS #18 Annex C Standard Recommendation.
+ See the uchar.h file documentation.
+ @stable ICU 3.4 */
+ UCHAR_POSIX_PRINT=47,
+ /** Binary property xdigit (a C/POSIX character class).
+ Implemented according to the UTS #18 Annex C Standard Recommendation.
+ See the uchar.h file documentation.
+ @stable ICU 3.4 */
+ UCHAR_POSIX_XDIGIT=48,
+ /** Binary property Cased. For Lowercase, Uppercase and Titlecase characters. @stable ICU 4.4 */
+ UCHAR_CASED=49,
+ /** Binary property Case_Ignorable. Used in context-sensitive case mappings. @stable ICU 4.4 */
+ UCHAR_CASE_IGNORABLE=50,
+ /** Binary property Changes_When_Lowercased. @stable ICU 4.4 */
+ UCHAR_CHANGES_WHEN_LOWERCASED=51,
+ /** Binary property Changes_When_Uppercased. @stable ICU 4.4 */
+ UCHAR_CHANGES_WHEN_UPPERCASED=52,
+ /** Binary property Changes_When_Titlecased. @stable ICU 4.4 */
+ UCHAR_CHANGES_WHEN_TITLECASED=53,
+ /** Binary property Changes_When_Casefolded. @stable ICU 4.4 */
+ UCHAR_CHANGES_WHEN_CASEFOLDED=54,
+ /** Binary property Changes_When_Casemapped. @stable ICU 4.4 */
+ UCHAR_CHANGES_WHEN_CASEMAPPED=55,
+ /** Binary property Changes_When_NFKC_Casefolded. @stable ICU 4.4 */
+ UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED=56,
/** One more than the last constant for binary Unicode properties. @stable ICU 2.1 */
- UCHAR_BINARY_LIMIT,
+ UCHAR_BINARY_LIMIT=57,
/** Enumerated property Bidi_Class.
Same as u_charDirection, returns UCharDirection values. @stable ICU 2.2 */
@@ -368,66 +418,81 @@ typedef enum UProperty {
UCHAR_INT_START=UCHAR_BIDI_CLASS,
/** Enumerated property Block.
Same as ublock_getCode, returns UBlockCode values. @stable ICU 2.2 */
- UCHAR_BLOCK,
+ UCHAR_BLOCK=0x1001,
/** Enumerated property Canonical_Combining_Class.
Same as u_getCombiningClass, returns 8-bit numeric values. @stable ICU 2.2 */
- UCHAR_CANONICAL_COMBINING_CLASS,
+ UCHAR_CANONICAL_COMBINING_CLASS=0x1002,
/** Enumerated property Decomposition_Type.
Returns UDecompositionType values. @stable ICU 2.2 */
- UCHAR_DECOMPOSITION_TYPE,
+ UCHAR_DECOMPOSITION_TYPE=0x1003,
/** Enumerated property East_Asian_Width.
See http://www.unicode.org/reports/tr11/
Returns UEastAsianWidth values. @stable ICU 2.2 */
- UCHAR_EAST_ASIAN_WIDTH,
+ UCHAR_EAST_ASIAN_WIDTH=0x1004,
/** Enumerated property General_Category.
Same as u_charType, returns UCharCategory values. @stable ICU 2.2 */
- UCHAR_GENERAL_CATEGORY,
+ UCHAR_GENERAL_CATEGORY=0x1005,
/** Enumerated property Joining_Group.
Returns UJoiningGroup values. @stable ICU 2.2 */
- UCHAR_JOINING_GROUP,
+ UCHAR_JOINING_GROUP=0x1006,
/** Enumerated property Joining_Type.
Returns UJoiningType values. @stable ICU 2.2 */
- UCHAR_JOINING_TYPE,
+ UCHAR_JOINING_TYPE=0x1007,
/** Enumerated property Line_Break.
Returns ULineBreak values. @stable ICU 2.2 */
- UCHAR_LINE_BREAK,
+ UCHAR_LINE_BREAK=0x1008,
/** Enumerated property Numeric_Type.
Returns UNumericType values. @stable ICU 2.2 */
- UCHAR_NUMERIC_TYPE,
+ UCHAR_NUMERIC_TYPE=0x1009,
/** Enumerated property Script.
Same as uscript_getScript, returns UScriptCode values. @stable ICU 2.2 */
- UCHAR_SCRIPT,
+ UCHAR_SCRIPT=0x100A,
/** Enumerated property Hangul_Syllable_Type, new in Unicode 4.
Returns UHangulSyllableType values. @stable ICU 2.6 */
- UCHAR_HANGUL_SYLLABLE_TYPE,
+ UCHAR_HANGUL_SYLLABLE_TYPE=0x100B,
/** Enumerated property NFD_Quick_Check.
- Returns UNormalizationCheckResult values. @draft ICU 3.0 */
- UCHAR_NFD_QUICK_CHECK,
+ Returns UNormalizationCheckResult values. @stable ICU 3.0 */
+ UCHAR_NFD_QUICK_CHECK=0x100C,
/** Enumerated property NFKD_Quick_Check.
- Returns UNormalizationCheckResult values. @draft ICU 3.0 */
- UCHAR_NFKD_QUICK_CHECK,
+ Returns UNormalizationCheckResult values. @stable ICU 3.0 */
+ UCHAR_NFKD_QUICK_CHECK=0x100D,
/** Enumerated property NFC_Quick_Check.
- Returns UNormalizationCheckResult values. @draft ICU 3.0 */
- UCHAR_NFC_QUICK_CHECK,
+ Returns UNormalizationCheckResult values. @stable ICU 3.0 */
+ UCHAR_NFC_QUICK_CHECK=0x100E,
/** Enumerated property NFKC_Quick_Check.
- Returns UNormalizationCheckResult values. @draft ICU 3.0 */
- UCHAR_NFKC_QUICK_CHECK,
+ Returns UNormalizationCheckResult values. @stable ICU 3.0 */
+ UCHAR_NFKC_QUICK_CHECK=0x100F,
/** Enumerated property Lead_Canonical_Combining_Class.
ICU-specific property for the ccc of the first code point
of the decomposition, or lccc(c)=ccc(NFD(c)[0]).
Useful for checking for canonically ordered text;
see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD .
- Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @draft ICU 3.0 */
- UCHAR_LEAD_CANONICAL_COMBINING_CLASS,
+ Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @stable ICU 3.0 */
+ UCHAR_LEAD_CANONICAL_COMBINING_CLASS=0x1010,
/** Enumerated property Trail_Canonical_Combining_Class.
ICU-specific property for the ccc of the last code point
of the decomposition, or tccc(c)=ccc(NFD(c)[last]).
Useful for checking for canonically ordered text;
see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD .
- Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @draft ICU 3.0 */
- UCHAR_TRAIL_CANONICAL_COMBINING_CLASS,
+ Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @stable ICU 3.0 */
+ UCHAR_TRAIL_CANONICAL_COMBINING_CLASS=0x1011,
+ /** Enumerated property Grapheme_Cluster_Break (new in Unicode 4.1).
+ Used in UAX #29: Text Boundaries
+ (http://www.unicode.org/reports/tr29/)
+ Returns UGraphemeClusterBreak values. @stable ICU 3.4 */
+ UCHAR_GRAPHEME_CLUSTER_BREAK=0x1012,
+ /** Enumerated property Sentence_Break (new in Unicode 4.1).
+ Used in UAX #29: Text Boundaries
+ (http://www.unicode.org/reports/tr29/)
+ Returns USentenceBreak values. @stable ICU 3.4 */
+ UCHAR_SENTENCE_BREAK=0x1013,
+ /** Enumerated property Word_Break (new in Unicode 4.1).
+ Used in UAX #29: Text Boundaries
+ (http://www.unicode.org/reports/tr29/)
+ Returns UWordBreakValues values. @stable ICU 3.4 */
+ UCHAR_WORD_BREAK=0x1014,
/** One more than the last constant for enumerated/integer Unicode properties. @stable ICU 2.2 */
- UCHAR_INT_LIMIT,
+ UCHAR_INT_LIMIT=0x1015,
/** Bitmask property General_Category_Mask.
This is the General_Category property returned as a bit mask.
@@ -441,7 +506,7 @@ typedef enum UProperty {
/** First constant for bit-mask Unicode properties. @stable ICU 2.4 */
UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK,
/** One more than the last constant for bit-mask Unicode properties. @stable ICU 2.4 */
- UCHAR_MASK_LIMIT,
+ UCHAR_MASK_LIMIT=0x2001,
/** Double property Numeric_Value.
Corresponds to u_getNumericValue. @stable ICU 2.4 */
@@ -449,7 +514,7 @@ typedef enum UProperty {
/** First constant for double Unicode properties. @stable ICU 2.4 */
UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE,
/** One more than the last constant for double Unicode properties. @stable ICU 2.4 */
- UCHAR_DOUBLE_LIMIT,
+ UCHAR_DOUBLE_LIMIT=0x3001,
/** String property Age.
Corresponds to u_charAge. @stable ICU 2.4 */
@@ -458,42 +523,56 @@ typedef enum UProperty {
UCHAR_STRING_START=UCHAR_AGE,
/** String property Bidi_Mirroring_Glyph.
Corresponds to u_charMirror. @stable ICU 2.4 */
- UCHAR_BIDI_MIRRORING_GLYPH,
+ UCHAR_BIDI_MIRRORING_GLYPH=0x4001,
/** String property Case_Folding.
Corresponds to u_strFoldCase in ustring.h. @stable ICU 2.4 */
- UCHAR_CASE_FOLDING,
+ UCHAR_CASE_FOLDING=0x4002,
/** String property ISO_Comment.
Corresponds to u_getISOComment. @stable ICU 2.4 */
- UCHAR_ISO_COMMENT,
+ UCHAR_ISO_COMMENT=0x4003,
/** String property Lowercase_Mapping.
Corresponds to u_strToLower in ustring.h. @stable ICU 2.4 */
- UCHAR_LOWERCASE_MAPPING,
+ UCHAR_LOWERCASE_MAPPING=0x4004,
/** String property Name.
Corresponds to u_charName. @stable ICU 2.4 */
- UCHAR_NAME,
+ UCHAR_NAME=0x4005,
/** String property Simple_Case_Folding.
Corresponds to u_foldCase. @stable ICU 2.4 */
- UCHAR_SIMPLE_CASE_FOLDING,
+ UCHAR_SIMPLE_CASE_FOLDING=0x4006,
/** String property Simple_Lowercase_Mapping.
Corresponds to u_tolower. @stable ICU 2.4 */
- UCHAR_SIMPLE_LOWERCASE_MAPPING,
+ UCHAR_SIMPLE_LOWERCASE_MAPPING=0x4007,
/** String property Simple_Titlecase_Mapping.
Corresponds to u_totitle. @stable ICU 2.4 */
- UCHAR_SIMPLE_TITLECASE_MAPPING,
+ UCHAR_SIMPLE_TITLECASE_MAPPING=0x4008,
/** String property Simple_Uppercase_Mapping.
Corresponds to u_toupper. @stable ICU 2.4 */
- UCHAR_SIMPLE_UPPERCASE_MAPPING,
+ UCHAR_SIMPLE_UPPERCASE_MAPPING=0x4009,
/** String property Titlecase_Mapping.
Corresponds to u_strToTitle in ustring.h. @stable ICU 2.4 */
- UCHAR_TITLECASE_MAPPING,
+ UCHAR_TITLECASE_MAPPING=0x400A,
/** String property Unicode_1_Name.
Corresponds to u_charName. @stable ICU 2.4 */
- UCHAR_UNICODE_1_NAME,
+ UCHAR_UNICODE_1_NAME=0x400B,
/** String property Uppercase_Mapping.
Corresponds to u_strToUpper in ustring.h. @stable ICU 2.4 */
- UCHAR_UPPERCASE_MAPPING,
+ UCHAR_UPPERCASE_MAPPING=0x400C,
/** One more than the last constant for string Unicode properties. @stable ICU 2.4 */
- UCHAR_STRING_LIMIT,
+ UCHAR_STRING_LIMIT=0x400D,
+
+ /** Provisional property Script_Extensions (new in Unicode 6.0).
+ As a provisional property, it may be modified or removed
+ in future versions of the Unicode Standard, and thus in ICU.
+ Some characters are commonly used in multiple scripts.
+ For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
+ Corresponds to uscript_hasScript and uscript_getScriptExtensions in uscript.h.
+ @draft ICU 4.6 */
+ UCHAR_SCRIPT_EXTENSIONS=0x7000,
+ /** First constant for Unicode properties with unusual value types. @draft ICU 4.6 */
+ UCHAR_OTHER_PROPERTY_START=UCHAR_SCRIPT_EXTENSIONS,
+ /** One more than the last constant for Unicode properties with unusual value types.
+ * @draft ICU 4.6 */
+ UCHAR_OTHER_PROPERTY_LIMIT=0x7001,
/** Represents a nonexistent or invalid property or property value. @stable ICU 2.4 */
UCHAR_INVALID_CODE = -1
@@ -1057,7 +1136,7 @@ enum UBlockCode {
* @stable ICU 2.2
*/
UBLOCK_CYRILLIC_SUPPLEMENTARY = 97,
- /** @draft ICU 3.0 */
+ /** @stable ICU 3.0 */
UBLOCK_CYRILLIC_SUPPLEMENT = UBLOCK_CYRILLIC_SUPPLEMENTARY, /*[0500]*/
/** @stable ICU 2.2 */
UBLOCK_TAGALOG = 98, /*[1700]*/
@@ -1119,8 +1198,191 @@ enum UBlockCode {
/** @stable ICU 2.6 */
UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125, /*[E0100]*/
- /** @stable ICU 2.0 */
- UBLOCK_COUNT,
+ /* New blocks in Unicode 4.1 */
+
+ /** @stable ICU 3.4 */
+ UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION = 126, /*[1D200]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_ANCIENT_GREEK_NUMBERS = 127, /*[10140]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_ARABIC_SUPPLEMENT = 128, /*[0750]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_BUGINESE = 129, /*[1A00]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_CJK_STROKES = 130, /*[31C0]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131, /*[1DC0]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_COPTIC = 132, /*[2C80]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_ETHIOPIC_EXTENDED = 133, /*[2D80]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_ETHIOPIC_SUPPLEMENT = 134, /*[1380]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_GEORGIAN_SUPPLEMENT = 135, /*[2D00]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_GLAGOLITIC = 136, /*[2C00]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_KHAROSHTHI = 137, /*[10A00]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_MODIFIER_TONE_LETTERS = 138, /*[A700]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_NEW_TAI_LUE = 139, /*[1980]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_OLD_PERSIAN = 140, /*[103A0]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT = 141, /*[1D80]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_SUPPLEMENTAL_PUNCTUATION = 142, /*[2E00]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_SYLOTI_NAGRI = 143, /*[A800]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_TIFINAGH = 144, /*[2D30]*/
+ /** @stable ICU 3.4 */
+ UBLOCK_VERTICAL_FORMS = 145, /*[FE10]*/
+
+ /* New blocks in Unicode 5.0 */
+
+ /** @stable ICU 3.6 */
+ UBLOCK_NKO = 146, /*[07C0]*/
+ /** @stable ICU 3.6 */
+ UBLOCK_BALINESE = 147, /*[1B00]*/
+ /** @stable ICU 3.6 */
+ UBLOCK_LATIN_EXTENDED_C = 148, /*[2C60]*/
+ /** @stable ICU 3.6 */
+ UBLOCK_LATIN_EXTENDED_D = 149, /*[A720]*/
+ /** @stable ICU 3.6 */
+ UBLOCK_PHAGS_PA = 150, /*[A840]*/
+ /** @stable ICU 3.6 */
+ UBLOCK_PHOENICIAN = 151, /*[10900]*/
+ /** @stable ICU 3.6 */
+ UBLOCK_CUNEIFORM = 152, /*[12000]*/
+ /** @stable ICU 3.6 */
+ UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153, /*[12400]*/
+ /** @stable ICU 3.6 */
+ UBLOCK_COUNTING_ROD_NUMERALS = 154, /*[1D360]*/
+
+ /* New blocks in Unicode 5.1 */
+
+ /** @stable ICU 4.0 */
+ UBLOCK_SUNDANESE = 155, /*[1B80]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_LEPCHA = 156, /*[1C00]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_OL_CHIKI = 157, /*[1C50]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_CYRILLIC_EXTENDED_A = 158, /*[2DE0]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_VAI = 159, /*[A500]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_CYRILLIC_EXTENDED_B = 160, /*[A640]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_SAURASHTRA = 161, /*[A880]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_KAYAH_LI = 162, /*[A900]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_REJANG = 163, /*[A930]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_CHAM = 164, /*[AA00]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_ANCIENT_SYMBOLS = 165, /*[10190]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_PHAISTOS_DISC = 166, /*[101D0]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_LYCIAN = 167, /*[10280]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_CARIAN = 168, /*[102A0]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_LYDIAN = 169, /*[10920]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_MAHJONG_TILES = 170, /*[1F000]*/
+ /** @stable ICU 4.0 */
+ UBLOCK_DOMINO_TILES = 171, /*[1F030]*/
+
+ /* New blocks in Unicode 5.2 */
+
+ /** @stable ICU 4.4 */
+ UBLOCK_SAMARITAN = 172, /*[0800]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173, /*[18B0]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_TAI_THAM = 174, /*[1A20]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_VEDIC_EXTENSIONS = 175, /*[1CD0]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_LISU = 176, /*[A4D0]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_BAMUM = 177, /*[A6A0]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_COMMON_INDIC_NUMBER_FORMS = 178, /*[A830]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_DEVANAGARI_EXTENDED = 179, /*[A8E0]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_HANGUL_JAMO_EXTENDED_A = 180, /*[A960]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_JAVANESE = 181, /*[A980]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_MYANMAR_EXTENDED_A = 182, /*[AA60]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_TAI_VIET = 183, /*[AA80]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_MEETEI_MAYEK = 184, /*[ABC0]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_HANGUL_JAMO_EXTENDED_B = 185, /*[D7B0]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_IMPERIAL_ARAMAIC = 186, /*[10840]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_OLD_SOUTH_ARABIAN = 187, /*[10A60]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_AVESTAN = 188, /*[10B00]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_INSCRIPTIONAL_PARTHIAN = 189, /*[10B40]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_INSCRIPTIONAL_PAHLAVI = 190, /*[10B60]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_OLD_TURKIC = 191, /*[10C00]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_RUMI_NUMERAL_SYMBOLS = 192, /*[10E60]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_KAITHI = 193, /*[11080]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_EGYPTIAN_HIEROGLYPHS = 194, /*[13000]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195, /*[1F100]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196, /*[1F200]*/
+ /** @stable ICU 4.4 */
+ UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197, /*[2A700]*/
+
+ /* New blocks in Unicode 6.0 */
+
+ /** @stable ICU 4.6 */
+ UBLOCK_MANDAIC = 198, /*[0840]*/
+ /** @stable ICU 4.6 */
+ UBLOCK_BATAK = 199, /*[1BC0]*/
+ /** @stable ICU 4.6 */
+ UBLOCK_ETHIOPIC_EXTENDED_A = 200, /*[AB00]*/
+ /** @stable ICU 4.6 */
+ UBLOCK_BRAHMI = 201, /*[11000]*/
+ /** @stable ICU 4.6 */
+ UBLOCK_BAMUM_SUPPLEMENT = 202, /*[16800]*/
+ /** @stable ICU 4.6 */
+ UBLOCK_KANA_SUPPLEMENT = 203, /*[1B000]*/
+ /** @stable ICU 4.6 */
+ UBLOCK_PLAYING_CARDS = 204, /*[1F0A0]*/
+ /** @stable ICU 4.6 */
+ UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = 205, /*[1F300]*/
+ /** @stable ICU 4.6 */
+ UBLOCK_EMOTICONS = 206, /*[1F600]*/
+ /** @stable ICU 4.6 */
+ UBLOCK_TRANSPORT_AND_MAP_SYMBOLS = 207, /*[1F680]*/
+ /** @stable ICU 4.6 */
+ UBLOCK_ALCHEMICAL_SYMBOLS = 208, /*[1F700]*/
+ /** @stable ICU 4.6 */
+ UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = 209, /*[2B740]*/
+
+ /** @stable ICU 2.0 */
+ UBLOCK_COUNT = 210,
/** @stable ICU 2.0 */
UBLOCK_INVALID_CODE=-1
@@ -1165,6 +1427,7 @@ typedef enum UCharNameChoice {
U_UNICODE_CHAR_NAME,
U_UNICODE_10_CHAR_NAME,
U_EXTENDED_CHAR_NAME,
+ U_CHAR_NAME_ALIAS, /**< Corrected name from NameAliases.txt. @stable ICU 4.4 */
U_CHAR_NAME_CHOICE_COUNT
} UCharNameChoice;
@@ -1252,7 +1515,8 @@ typedef enum UJoiningGroup {
U_JG_GAF,
U_JG_GAMAL,
U_JG_HAH,
- U_JG_HAMZA_ON_HEH_GOAL,
+ U_JG_TEH_MARBUTA_GOAL, /**< @stable ICU 4.6 */
+ U_JG_HAMZA_ON_HEH_GOAL=U_JG_TEH_MARBUTA_GOAL,
U_JG_HE,
U_JG_HEH,
U_JG_HEH_GOAL,
@@ -1292,50 +1556,130 @@ typedef enum UJoiningGroup {
U_JG_FE, /**< @stable ICU 2.6 */
U_JG_KHAPH, /**< @stable ICU 2.6 */
U_JG_ZHAIN, /**< @stable ICU 2.6 */
+ U_JG_BURUSHASKI_YEH_BARREE, /**< @stable ICU 4.0 */
+ U_JG_FARSI_YEH, /**< @stable ICU 4.4 */
+ U_JG_NYA, /**< @stable ICU 4.4 */
U_JG_COUNT
} UJoiningGroup;
/**
+ * Grapheme Cluster Break constants.
+ *
+ * @see UCHAR_GRAPHEME_CLUSTER_BREAK
+ * @stable ICU 3.4
+ */
+typedef enum UGraphemeClusterBreak {
+ U_GCB_OTHER = 0, /*[XX]*/ /*See note !!*/
+ U_GCB_CONTROL = 1, /*[CN]*/
+ U_GCB_CR = 2, /*[CR]*/
+ U_GCB_EXTEND = 3, /*[EX]*/
+ U_GCB_L = 4, /*[L]*/
+ U_GCB_LF = 5, /*[LF]*/
+ U_GCB_LV = 6, /*[LV]*/
+ U_GCB_LVT = 7, /*[LVT]*/
+ U_GCB_T = 8, /*[T]*/
+ U_GCB_V = 9, /*[V]*/
+ U_GCB_SPACING_MARK = 10, /*[SM]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
+ U_GCB_PREPEND = 11, /*[PP]*/
+ U_GCB_COUNT = 12
+} UGraphemeClusterBreak;
+
+/**
+ * Word Break constants.
+ * (UWordBreak is a pre-existing enum type in ubrk.h for word break status tags.)
+ *
+ * @see UCHAR_WORD_BREAK
+ * @stable ICU 3.4
+ */
+typedef enum UWordBreakValues {
+ U_WB_OTHER = 0, /*[XX]*/ /*See note !!*/
+ U_WB_ALETTER = 1, /*[LE]*/
+ U_WB_FORMAT = 2, /*[FO]*/
+ U_WB_KATAKANA = 3, /*[KA]*/
+ U_WB_MIDLETTER = 4, /*[ML]*/
+ U_WB_MIDNUM = 5, /*[MN]*/
+ U_WB_NUMERIC = 6, /*[NU]*/
+ U_WB_EXTENDNUMLET = 7, /*[EX]*/
+ U_WB_CR = 8, /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
+ U_WB_EXTEND = 9, /*[Extend]*/
+ U_WB_LF = 10, /*[LF]*/
+ U_WB_MIDNUMLET =11, /*[MB]*/
+ U_WB_NEWLINE =12, /*[NL]*/
+ U_WB_COUNT = 13
+} UWordBreakValues;
+
+/**
+ * Sentence Break constants.
+ *
+ * @see UCHAR_SENTENCE_BREAK
+ * @stable ICU 3.4
+ */
+typedef enum USentenceBreak {
+ U_SB_OTHER = 0, /*[XX]*/ /*See note !!*/
+ U_SB_ATERM = 1, /*[AT]*/
+ U_SB_CLOSE = 2, /*[CL]*/
+ U_SB_FORMAT = 3, /*[FO]*/
+ U_SB_LOWER = 4, /*[LO]*/
+ U_SB_NUMERIC = 5, /*[NU]*/
+ U_SB_OLETTER = 6, /*[LE]*/
+ U_SB_SEP = 7, /*[SE]*/
+ U_SB_SP = 8, /*[SP]*/
+ U_SB_STERM = 9, /*[ST]*/
+ U_SB_UPPER = 10, /*[UP]*/
+ U_SB_CR = 11, /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
+ U_SB_EXTEND = 12, /*[EX]*/
+ U_SB_LF = 13, /*[LF]*/
+ U_SB_SCONTINUE = 14, /*[SC]*/
+ U_SB_COUNT = 15
+} USentenceBreak;
+
+/**
* Line Break constants.
*
* @see UCHAR_LINE_BREAK
* @stable ICU 2.2
*/
typedef enum ULineBreak {
- U_LB_UNKNOWN, /*[XX]*/ /*See note !!*/
- U_LB_AMBIGUOUS, /*[AI]*/
- U_LB_ALPHABETIC, /*[AL]*/
- U_LB_BREAK_BOTH, /*[B2]*/
- U_LB_BREAK_AFTER, /*[BA]*/
- U_LB_BREAK_BEFORE, /*[BB]*/
- U_LB_MANDATORY_BREAK, /*[BK]*/
- U_LB_CONTINGENT_BREAK, /*[CB]*/
- U_LB_CLOSE_PUNCTUATION, /*[CL]*/
- U_LB_COMBINING_MARK, /*[CM]*/
- U_LB_CARRIAGE_RETURN, /*[CR]*/
- U_LB_EXCLAMATION, /*[EX]*/
- U_LB_GLUE, /*[GL]*/
- U_LB_HYPHEN, /*[HY]*/
- U_LB_IDEOGRAPHIC, /*[ID]*/
- U_LB_INSEPERABLE,
- /** Renamed from the misspelled "inseperable" in Unicode 4.0.1/ICU 3.0 @draft ICU 3.0 */
+ U_LB_UNKNOWN = 0, /*[XX]*/ /*See note !!*/
+ U_LB_AMBIGUOUS = 1, /*[AI]*/
+ U_LB_ALPHABETIC = 2, /*[AL]*/
+ U_LB_BREAK_BOTH = 3, /*[B2]*/
+ U_LB_BREAK_AFTER = 4, /*[BA]*/
+ U_LB_BREAK_BEFORE = 5, /*[BB]*/
+ U_LB_MANDATORY_BREAK = 6, /*[BK]*/
+ U_LB_CONTINGENT_BREAK = 7, /*[CB]*/
+ U_LB_CLOSE_PUNCTUATION = 8, /*[CL]*/
+ U_LB_COMBINING_MARK = 9, /*[CM]*/
+ U_LB_CARRIAGE_RETURN = 10, /*[CR]*/
+ U_LB_EXCLAMATION = 11, /*[EX]*/
+ U_LB_GLUE = 12, /*[GL]*/
+ U_LB_HYPHEN = 13, /*[HY]*/
+ U_LB_IDEOGRAPHIC = 14, /*[ID]*/
+ U_LB_INSEPERABLE = 15,
+ /** Renamed from the misspelled "inseperable" in Unicode 4.0.1/ICU 3.0 @stable ICU 3.0 */
U_LB_INSEPARABLE=U_LB_INSEPERABLE,/*[IN]*/
- U_LB_INFIX_NUMERIC, /*[IS]*/
- U_LB_LINE_FEED, /*[LF]*/
- U_LB_NONSTARTER, /*[NS]*/
- U_LB_NUMERIC, /*[NU]*/
- U_LB_OPEN_PUNCTUATION, /*[OP]*/
- U_LB_POSTFIX_NUMERIC, /*[PO]*/
- U_LB_PREFIX_NUMERIC, /*[PR]*/
- U_LB_QUOTATION, /*[QU]*/
- U_LB_COMPLEX_CONTEXT, /*[SA]*/
- U_LB_SURROGATE, /*[SG]*/
- U_LB_SPACE, /*[SP]*/
- U_LB_BREAK_SYMBOLS, /*[SY]*/
- U_LB_ZWSPACE, /*[ZW]*/
- U_LB_NEXT_LINE, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */
- U_LB_WORD_JOINER, /*[WJ]*/
- U_LB_COUNT
+ U_LB_INFIX_NUMERIC = 16, /*[IS]*/
+ U_LB_LINE_FEED = 17, /*[LF]*/
+ U_LB_NONSTARTER = 18, /*[NS]*/
+ U_LB_NUMERIC = 19, /*[NU]*/
+ U_LB_OPEN_PUNCTUATION = 20, /*[OP]*/
+ U_LB_POSTFIX_NUMERIC = 21, /*[PO]*/
+ U_LB_PREFIX_NUMERIC = 22, /*[PR]*/
+ U_LB_QUOTATION = 23, /*[QU]*/
+ U_LB_COMPLEX_CONTEXT = 24, /*[SA]*/
+ U_LB_SURROGATE = 25, /*[SG]*/
+ U_LB_SPACE = 26, /*[SP]*/
+ U_LB_BREAK_SYMBOLS = 27, /*[SY]*/
+ U_LB_ZWSPACE = 28, /*[ZW]*/
+ U_LB_NEXT_LINE = 29, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */
+ U_LB_WORD_JOINER = 30, /*[WJ]*/
+ U_LB_H2 = 31, /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */
+ U_LB_H3 = 32, /*[H3]*/
+ U_LB_JL = 33, /*[JL]*/
+ U_LB_JT = 34, /*[JT]*/
+ U_LB_JV = 35, /*[JV]*/
+ U_LB_CLOSE_PARENTHESIS = 36, /*[CP]*/ /* new in Unicode 5.2/ICU 4.4 */
+ U_LB_COUNT = 37
} ULineBreak;
/**
@@ -1606,7 +1950,6 @@ u_getNumericValue(UChar32 c);
* @see UCHAR_LOWERCASE
* @see u_isupper
* @see u_istitle
- * @see u_islower
* @stable ICU 2.0
*/
U_STABLE UBool U_EXPORT2
@@ -1878,8 +2221,8 @@ u_isJavaSpaceChar(UChar32 c);
* A character is considered to be a Java whitespace character if and only
* if it satisfies one of the following criteria:
*
- * - It is a Unicode separator (categories "Z"), but is not
- * a no-break space (U+00A0 NBSP or U+2007 Figure Space or U+202F Narrow NBSP).
+ * - It is a Unicode Separator character (categories "Z" = "Zs" or "Zl" or "Zp"), but is not
+ * also a non-breaking space (U+00A0 NBSP or U+2007 Figure Space or U+202F Narrow NBSP).
* - It is U+0009 HORIZONTAL TABULATION.
* - It is U+000A LINE FEED.
* - It is U+000B VERTICAL TABULATION.
@@ -1889,9 +2232,15 @@ u_isJavaSpaceChar(UChar32 c);
* - It is U+001D GROUP SEPARATOR.
* - It is U+001E RECORD SEPARATOR.
* - It is U+001F UNIT SEPARATOR.
- * - It is U+0085 NEXT LINE.
*
- * Same as java.lang.Character.isWhitespace() except that Java omits U+0085.
+ * This API tries to sync with the semantics of Java's
+ * java.lang.Character.isWhitespace(), but it may not return
+ * the exact same results because of the Unicode version
+ * difference.
+ *
+ * Note: Unicode 4.0.1 changed U+200B ZERO WIDTH SPACE from a Space Separator (Zs)
+ * to a Format Control (Cf). Since then, isWhitespace(0x200b) returns false.
+ * See http://www.unicode.org/versions/Unicode4.0.1/
*
* Note: There are several ICU whitespace functions; please see the uchar.h
* file documentation for a detailed comparison.
@@ -2209,6 +2558,9 @@ u_charName(UChar32 code, UCharNameChoice nameChoice,
* The ISO 10646 comment is an informative field in the Unicode Character
* Database (UnicodeData.txt field 11) and is from the ISO 10646 names list.
*
+ * Note: Unicode 5.2 removes all ISO comment data, resulting in empty strings
+ * returned for all characters.
+ *
* @param c The character (code point) for which to get the ISO comment.
* It must be <code>0<=c<=0x10ffff</code>.
* @param dest Destination address for copying the comment.
@@ -2273,7 +2625,7 @@ u_charFromName(UCharNameChoice nameChoice,
* @see u_enumCharNames
* @stable ICU 1.7
*/
-typedef UBool UEnumCharNamesFn(void *context,
+typedef UBool U_CALLCONV UEnumCharNamesFn(void *context,
UChar32 code,
UCharNameChoice nameChoice,
const char *name,
@@ -2439,7 +2791,7 @@ u_getPropertyValueName(UProperty property,
*
* @return a value integer or UCHAR_INVALID_CODE if the given name
* does not match any value of the given property, or if the
- * property is invalid. Note: U CHAR_GENERAL_CATEGORY values
+ * property is invalid. Note: UCHAR_GENERAL_CATEGORY_MASK values
* are not values of UCharCategory, but rather mask values
* produced by U_GET_GC_MASK(). This allows grouped
* categories such as [:L:] to be represented.
@@ -2501,11 +2853,9 @@ u_isIDPart(UChar32 c);
* according to Java.
* True for characters with general category "Cf" (format controls) as well as
* non-whitespace ISO controls
- * (U+0000..U+0008, U+000E..U+001B, U+007F..U+0084, U+0086..U+009F).
+ * (U+0000..U+0008, U+000E..U+001B, U+007F..U+009F).
*
- * Same as java.lang.Character.isIdentifierIgnorable()
- * except that Java also returns TRUE for U+0085 Next Line
- * (it omits U+0085 from whitespace ISO controls).
+ * Same as java.lang.Character.isIdentifierIgnorable().
*
* Note that Unicode just recommends to ignore Cf (format controls).
*
@@ -2568,10 +2918,14 @@ u_isJavaIDPart(UChar32 c);
* Same as java.lang.Character.toLowerCase().
*
* This function only returns the simple, single-code point case mapping.
- * Full case mappings may result in zero, one or more code points and depend
- * on context or language etc.
+ * Full case mappings should be used whenever possible because they produce
+ * better results by working on whole strings.
+ * They take into account the string context and the language and can map
+ * to a result string with a different length as appropriate.
* Full case mappings are applied by the string case mapping functions,
* see ustring.h and the UnicodeString class.
+ * See also the User Guide chapter on C/POSIX migration:
+ * http://icu-project.org/userguide/posix.html#case_mappings
*
* @param c the code point to be mapped
* @return the Simple_Lowercase_Mapping of the code point, if any;
@@ -2589,10 +2943,14 @@ u_tolower(UChar32 c);
* Same as java.lang.Character.toUpperCase().
*
* This function only returns the simple, single-code point case mapping.
- * Full case mappings may result in zero, one or more code points and depend
- * on context or language etc.
+ * Full case mappings should be used whenever possible because they produce
+ * better results by working on whole strings.
+ * They take into account the string context and the language and can map
+ * to a result string with a different length as appropriate.
* Full case mappings are applied by the string case mapping functions,
* see ustring.h and the UnicodeString class.
+ * See also the User Guide chapter on C/POSIX migration:
+ * http://icu-project.org/userguide/posix.html#case_mappings
*
* @param c the code point to be mapped
* @return the Simple_Uppercase_Mapping of the code point, if any;
@@ -2610,10 +2968,14 @@ u_toupper(UChar32 c);
* Same as java.lang.Character.toTitleCase().
*
* This function only returns the simple, single-code point case mapping.
- * Full case mappings may result in zero, one or more code points and depend
- * on context or language etc.
+ * Full case mappings should be used whenever possible because they produce
+ * better results by working on whole strings.
+ * They take into account the string context and the language and can map
+ * to a result string with a different length as appropriate.
* Full case mappings are applied by the string case mapping functions,
* see ustring.h and the UnicodeString class.
+ * See also the User Guide chapter on C/POSIX migration:
+ * http://icu-project.org/userguide/posix.html#case_mappings
*
* @param c the code point to be mapped
* @return the Simple_Titlecase_Mapping of the code point, if any;
@@ -2651,10 +3013,14 @@ u_totitle(UChar32 c);
* itself is returned.
*
* This function only returns the simple, single-code point case mapping.
- * Full case mappings may result in zero, one or more code points and depend
- * on context or language etc.
+ * Full case mappings should be used whenever possible because they produce
+ * better results by working on whole strings.
+ * They take into account the string context and the language and can map
+ * to a result string with a different length as appropriate.
* Full case mappings are applied by the string case mapping functions,
* see ustring.h and the UnicodeString class.
+ * See also the User Guide chapter on C/POSIX migration:
+ * http://icu-project.org/userguide/posix.html#case_mappings
*
* @param c the code point to be mapped
* @param options Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
@@ -2768,6 +3134,7 @@ u_charAge(UChar32 c, UVersionInfo versionArray);
U_STABLE void U_EXPORT2
u_getUnicodeVersion(UVersionInfo versionArray);
+#if !UCONFIG_NO_NORMALIZATION
/**
* Get the FC_NFKC_Closure property string for a character.
* See Unicode Standard Annex #15 for details, search for "FC_NFKC_Closure"
@@ -2792,6 +3159,9 @@ u_getUnicodeVersion(UVersionInfo versionArray);
U_STABLE int32_t U_EXPORT2
u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
+#endif
+
+
U_CDECL_END
#endif /*_UCHAR*/
diff --git a/Source/WebKit/mac/icu/unicode/uconfig.h b/Source/WebKit/mac/icu/unicode/uconfig.h
index 997cf686b..7d2d26e95 100644
--- a/Source/WebKit/mac/icu/unicode/uconfig.h
+++ b/Source/WebKit/mac/icu/unicode/uconfig.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2002-2004, International Business Machines
+* Copyright (C) 2002-2009, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: uconfig.h
@@ -15,6 +15,7 @@
#ifndef __UCONFIG_H__
#define __UCONFIG_H__
+
/*!
* \file
* \brief Switches for excluding parts of ICU library code modules.
@@ -24,17 +25,35 @@
* The switches are fairly coarse, controlling large modules.
* Basic services cannot be turned off.
*
+ * Building with any of these options does not guarantee that the
+ * ICU build process will completely work. It is recommended that
+ * the ICU libraries and data be built using the normal build.
+ * At that time you should remove the data used by those services.
+ * After building the ICU data library, you should rebuild the ICU
+ * libraries with these switches customized to your needs.
+ *
* @stable ICU 2.4
*/
/**
+ * If this switch is defined, ICU will attempt to load a header file named "uconfig_local.h"
+ * prior to determining default settings for uconfig variables.
+ *
+ * @internal ICU 4.0
+ *
+ */
+#if defined(UCONFIG_USE_LOCAL)
+#include "uconfig_local.h"
+#endif
+
+/**
* \def UCONFIG_ONLY_COLLATION
* This switch turns off modules that are not needed for collation.
*
* It does not turn off legacy conversion because that is necessary
* for ICU to work on EBCDIC platforms (for the default converter).
* If you want "only collation" and do not build for EBCDIC,
- * then you can #define UCONFIG_NO_LEGACY_CONVERSION 1 as well.
+ * then you can define UCONFIG_NO_LEGACY_CONVERSION 1 as well.
*
* @stable ICU 2.4
*/
@@ -59,11 +78,37 @@
/* common library switches -------------------------------------------------- */
/**
+ * \def UCONFIG_NO_FILE_IO
+ * This switch turns off all file access in the common library
+ * where file access is only used for data loading.
+ * ICU data must then be provided in the form of a data DLL (or with an
+ * equivalent way to link to the data residing in an executable,
+ * as in building a combined library with both the common library's code and
+ * the data), or via udata_setCommonData().
+ * Application data must be provided via udata_setAppData() or by using
+ * "open" functions that take pointers to data, for example ucol_openBinary().
+ *
+ * File access is not used at all in the i18n library.
+ *
+ * File access cannot be turned off for the icuio library or for the ICU
+ * test suites and ICU tools.
+ *
+ * @stable ICU 3.6
+ */
+#ifndef UCONFIG_NO_FILE_IO
+# define UCONFIG_NO_FILE_IO 0
+#endif
+
+/**
* \def UCONFIG_NO_CONVERSION
* ICU will not completely build with this switch turned on.
* This switch turns off all converters.
*
- * @draft ICU 3.2
+ * You may want to use this together with U_CHARSET_IS_UTF8 defined to 1
+ * in utypes.h if char* strings in your environment are always in UTF-8.
+ *
+ * @stable ICU 3.2
+ * @see U_CHARSET_IS_UTF8
*/
#ifndef UCONFIG_NO_CONVERSION
# define UCONFIG_NO_CONVERSION 0
@@ -177,10 +222,10 @@
* \def UCONFIG_NO_SERVICE
* This switch turns off service registration.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
#ifndef UCONFIG_NO_SERVICE
-# define UCONFIG_NO_SERVICE 0
+# define UCONFIG_NO_SERVICE 1
#endif
#endif
diff --git a/Source/WebKit/mac/icu/unicode/uidna.h b/Source/WebKit/mac/icu/unicode/uidna.h
index 7b1dd0b3c..04b439d97 100644
--- a/Source/WebKit/mac/icu/unicode/uidna.h
+++ b/Source/WebKit/mac/icu/unicode/uidna.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 2003-2004, International Business Machines
+ * Copyright (C) 2003-2010, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -21,66 +21,488 @@
#if !UCONFIG_NO_IDNA
+#include "unicode/localpointer.h"
#include "unicode/parseerr.h"
-
+
/**
- *\file
- * UIDNA API implements the IDNA protocol as defined in the IDNA RFC
- * (http://www.ietf.org/rfc/rfc3490.txt).
- * The RFC defines 2 operations: ToASCII and ToUnicode. Domain labels
- * containing non-ASCII code points are required to be processed by
- * ToASCII operation before passing it to resolver libraries. Domain names
- * that are obtained from resolver libraries are required to be processed by
- * ToUnicode operation before displaying the domain name to the user.
- * IDNA requires that implementations process input strings with Nameprep
- * (http://www.ietf.org/rfc/rfc3491.txt),
- * which is a profile of Stringprep (http://www.ietf.org/rfc/rfc3454.txt),
- * and then with Punycode (http://www.ietf.org/rfc/rfc3492.txt).
- * Implementations of IDNA MUST fully implement Nameprep and Punycode;
- * neither Nameprep nor Punycode are optional.
- * The input and output of ToASCII and ToUnicode operations are Unicode
- * and are designed to be chainable, i.e., applying ToASCII or ToUnicode operations
- * multiple times to an input string will yield the same result as applying the operation
- * once.
- * ToUnicode(ToUnicode(ToUnicode...(ToUnicode(string)))) == ToUnicode(string)
- * ToASCII(ToASCII(ToASCII...(ToASCII(string))) == ToASCII(string).
+ * \file
+ * \brief C API: Internationalizing Domain Names in Applications (IDNA)
+ *
+ * IDNA2008 is implemented according to UTS #46, see the IDNA C++ class in idna.h.
*
+ * The C API functions which do take a UIDNA * service object pointer
+ * implement UTS #46 and IDNA2008.
+ * The C API functions which do not take a service object pointer
+ * implement IDNA2003.
*/
-#ifndef U_HIDE_DRAFT_API
+/*
+ * IDNA option bit set values.
+ */
+enum {
+ /**
+ * Default options value: None of the other options are set.
+ * @stable ICU 2.6
+ */
+ UIDNA_DEFAULT=0,
+ /**
+ * Option to allow unassigned code points in domain names and labels.
+ * This option is ignored by the UTS46 implementation.
+ * (UTS #46 disallows unassigned code points.)
+ * @stable ICU 2.6
+ */
+ UIDNA_ALLOW_UNASSIGNED=1,
+ /**
+ * Option to check whether the input conforms to the STD3 ASCII rules,
+ * for example the restriction of labels to LDH characters
+ * (ASCII Letters, Digits and Hyphen-Minus).
+ * @stable ICU 2.6
+ */
+ UIDNA_USE_STD3_RULES=2,
+ /**
+ * IDNA option to check for whether the input conforms to the BiDi rules.
+ * This option is ignored by the IDNA2003 implementation.
+ * (IDNA2003 always performs a BiDi check.)
+ * @draft ICU 4.6
+ */
+ UIDNA_CHECK_BIDI=4,
+ /**
+ * IDNA option to check for whether the input conforms to the CONTEXTJ rules.
+ * This option is ignored by the IDNA2003 implementation.
+ * (The CONTEXTJ check is new in IDNA2008.)
+ * @draft ICU 4.6
+ */
+ UIDNA_CHECK_CONTEXTJ=8,
+ /**
+ * IDNA option for nontransitional processing in ToASCII().
+ * By default, ToASCII() uses transitional processing.
+ * This option is ignored by the IDNA2003 implementation.
+ * (This is only relevant for compatibility of newer IDNA implementations with IDNA2003.)
+ * @draft ICU 4.6
+ */
+ UIDNA_NONTRANSITIONAL_TO_ASCII=0x10,
+ /**
+ * IDNA option for nontransitional processing in ToUnicode().
+ * By default, ToUnicode() uses transitional processing.
+ * This option is ignored by the IDNA2003 implementation.
+ * (This is only relevant for compatibility of newer IDNA implementations with IDNA2003.)
+ * @draft ICU 4.6
+ */
+ UIDNA_NONTRANSITIONAL_TO_UNICODE=0x20
+};
-/**
- * Option to prohibit processing of unassigned codepoints in the input and
- * do not check if the input conforms to STD-3 ASCII rules.
- *
- * @see uidna_toASCII uidna_toUnicode
- * @stable ICU 2.6
+/**
+ * Opaque C service object type for the new IDNA API.
+ * @draft ICU 4.6
*/
-#define UIDNA_DEFAULT 0x0000
-/**
- * Option to allow processing of unassigned codepoints in the input
- *
- * @see uidna_toASCII uidna_toUnicode
- * @stable ICU 2.6
+struct UIDNA;
+typedef struct UIDNA UIDNA; /**< C typedef for struct UIDNA. @draft ICU 4.6 */
+
+/**
+ * Returns a UIDNA instance which implements UTS #46.
+ * Returns an unmodifiable instance, owned by the caller.
+ * Cache it for multiple operations, and uidna_close() it when done.
+ * The instance is thread-safe, that is, it can be used concurrently.
+ *
+ * For details about the UTS #46 implementation see the IDNA C++ class in idna.h.
+ *
+ * @param options Bit set to modify the processing and error checking.
+ * See option bit set values in uidna.h.
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return the UTS #46 UIDNA instance, if successful
+ * @draft ICU 4.6
*/
-#define UIDNA_ALLOW_UNASSIGNED 0x0001
-/**
- * Option to check if input conforms to STD-3 ASCII rules
- *
- * @see uidna_toASCII uidna_toUnicode
- * @stable ICU 2.6
+U_DRAFT UIDNA * U_EXPORT2
+uidna_openUTS46(uint32_t options, UErrorCode *pErrorCode);
+
+/**
+ * Closes a UIDNA instance.
+ * @param idna UIDNA instance to be closed
+ * @draft ICU 4.6
*/
-#define UIDNA_USE_STD3_RULES 0x0002
+U_DRAFT void U_EXPORT2
+uidna_close(UIDNA *idna);
+
+#if U_SHOW_CPLUSPLUS_API
+
+U_NAMESPACE_BEGIN
-#endif /*U_HIDE_DRAFT_API*/
-
/**
- * This function implements the ToASCII operation as defined in the IDNA RFC.
+ * \class LocalUIDNAPointer
+ * "Smart pointer" class, closes a UIDNA via uidna_close().
+ * For most methods see the LocalPointerBase base class.
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @draft ICU 4.6
+ */
+U_DEFINE_LOCAL_OPEN_POINTER(LocalUIDNAPointer, UIDNA, uidna_close);
+
+U_NAMESPACE_END
+
+#endif
+
+/**
+ * Output container for IDNA processing errors.
+ * Initialize with UIDNA_INFO_INITIALIZER:
+ * \code
+ * UIDNAInfo info = UIDNA_INFO_INITIALIZER;
+ * int32_t length = uidna_nameToASCII(..., &info, &errorCode);
+ * if(U_SUCCESS(errorCode) && info.errors!=0) { ... }
+ * \endcode
+ * @draft ICU 4.6
+ */
+struct UIDNAInfo {
+ /** sizeof(UIDNAInfo) @draft ICU 4.6 */
+ int16_t size;
+ /**
+ * Set to TRUE if transitional and nontransitional processing produce different results.
+ * For details see C++ IDNAInfo::isTransitionalDifferent().
+ * @draft ICU 4.6
+ */
+ UBool isTransitionalDifferent;
+ UBool reservedB3; /**< Reserved field, do not use. @internal */
+ /**
+ * Bit set indicating IDNA processing errors. 0 if no errors.
+ * See UIDNA_ERROR_... constants.
+ * @draft ICU 4.6
+ */
+ uint32_t errors;
+ int32_t reservedI2; /**< Reserved field, do not use. @internal */
+ int32_t reservedI3; /**< Reserved field, do not use. @internal */
+};
+typedef struct UIDNAInfo UIDNAInfo;
+
+/**
+ * Static initializer for a UIDNAInfo struct.
+ * @draft ICU 4.6
+ */
+#define UIDNA_INFO_INITIALIZER { \
+ (int16_t)sizeof(UIDNAInfo), \
+ FALSE, FALSE, \
+ 0, 0, 0 }
+
+/**
+ * Converts a single domain name label into its ASCII form for DNS lookup.
+ * If any processing step fails, then pInfo->errors will be non-zero and
+ * the result might not be an ASCII string.
+ * The label might be modified according to the types of errors.
+ * Labels with severe errors will be left in (or turned into) their Unicode form.
+ *
+ * The UErrorCode indicates an error only in exceptional cases,
+ * such as a U_MEMORY_ALLOCATION_ERROR.
+ *
+ * @param idna UIDNA instance
+ * @param label Input domain name label
+ * @param length Label length, or -1 if NUL-terminated
+ * @param dest Destination string buffer
+ * @param capacity Destination buffer capacity
+ * @param pInfo Output container of IDNA processing details.
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return destination string length
+ * @draft ICU 4.6
+ */
+U_DRAFT int32_t U_EXPORT2
+uidna_labelToASCII(const UIDNA *idna,
+ const UChar *label, int32_t length,
+ UChar *dest, int32_t capacity,
+ UIDNAInfo *pInfo, UErrorCode *pErrorCode);
+
+/**
+ * Converts a single domain name label into its Unicode form for human-readable display.
+ * If any processing step fails, then pInfo->errors will be non-zero.
+ * The label might be modified according to the types of errors.
+ *
+ * The UErrorCode indicates an error only in exceptional cases,
+ * such as a U_MEMORY_ALLOCATION_ERROR.
+ *
+ * @param idna UIDNA instance
+ * @param label Input domain name label
+ * @param length Label length, or -1 if NUL-terminated
+ * @param dest Destination string buffer
+ * @param capacity Destination buffer capacity
+ * @param pInfo Output container of IDNA processing details.
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return destination string length
+ * @draft ICU 4.6
+ */
+U_DRAFT int32_t U_EXPORT2
+uidna_labelToUnicode(const UIDNA *idna,
+ const UChar *label, int32_t length,
+ UChar *dest, int32_t capacity,
+ UIDNAInfo *pInfo, UErrorCode *pErrorCode);
+
+/**
+ * Converts a whole domain name into its ASCII form for DNS lookup.
+ * If any processing step fails, then pInfo->errors will be non-zero and
+ * the result might not be an ASCII string.
+ * The domain name might be modified according to the types of errors.
+ * Labels with severe errors will be left in (or turned into) their Unicode form.
+ *
+ * The UErrorCode indicates an error only in exceptional cases,
+ * such as a U_MEMORY_ALLOCATION_ERROR.
+ *
+ * @param idna UIDNA instance
+ * @param name Input domain name
+ * @param length Domain name length, or -1 if NUL-terminated
+ * @param dest Destination string buffer
+ * @param capacity Destination buffer capacity
+ * @param pInfo Output container of IDNA processing details.
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return destination string length
+ * @draft ICU 4.6
+ */
+U_DRAFT int32_t U_EXPORT2
+uidna_nameToASCII(const UIDNA *idna,
+ const UChar *name, int32_t length,
+ UChar *dest, int32_t capacity,
+ UIDNAInfo *pInfo, UErrorCode *pErrorCode);
+
+/**
+ * Converts a whole domain name into its Unicode form for human-readable display.
+ * If any processing step fails, then pInfo->errors will be non-zero.
+ * The domain name might be modified according to the types of errors.
+ *
+ * The UErrorCode indicates an error only in exceptional cases,
+ * such as a U_MEMORY_ALLOCATION_ERROR.
+ *
+ * @param idna UIDNA instance
+ * @param name Input domain name
+ * @param length Domain name length, or -1 if NUL-terminated
+ * @param dest Destination string buffer
+ * @param capacity Destination buffer capacity
+ * @param pInfo Output container of IDNA processing details.
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return destination string length
+ * @draft ICU 4.6
+ */
+U_DRAFT int32_t U_EXPORT2
+uidna_nameToUnicode(const UIDNA *idna,
+ const UChar *name, int32_t length,
+ UChar *dest, int32_t capacity,
+ UIDNAInfo *pInfo, UErrorCode *pErrorCode);
+
+/* UTF-8 versions of the processing methods --------------------------------- */
+
+/**
+ * Converts a single domain name label into its ASCII form for DNS lookup.
+ * UTF-8 version of uidna_labelToASCII(), same behavior.
+ *
+ * @param idna UIDNA instance
+ * @param label Input domain name label
+ * @param length Label length, or -1 if NUL-terminated
+ * @param dest Destination string buffer
+ * @param capacity Destination buffer capacity
+ * @param pInfo Output container of IDNA processing details.
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return destination string length
+ * @draft ICU 4.6
+ */
+U_DRAFT int32_t U_EXPORT2
+uidna_labelToASCII_UTF8(const UIDNA *idna,
+ const char *label, int32_t length,
+ char *dest, int32_t capacity,
+ UIDNAInfo *pInfo, UErrorCode *pErrorCode);
+
+/**
+ * Converts a single domain name label into its Unicode form for human-readable display.
+ * UTF-8 version of uidna_labelToUnicode(), same behavior.
+ *
+ * @param idna UIDNA instance
+ * @param label Input domain name label
+ * @param length Label length, or -1 if NUL-terminated
+ * @param dest Destination string buffer
+ * @param capacity Destination buffer capacity
+ * @param pInfo Output container of IDNA processing details.
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return destination string length
+ * @draft ICU 4.6
+ */
+U_DRAFT int32_t U_EXPORT2
+uidna_labelToUnicodeUTF8(const UIDNA *idna,
+ const char *label, int32_t length,
+ char *dest, int32_t capacity,
+ UIDNAInfo *pInfo, UErrorCode *pErrorCode);
+
+/**
+ * Converts a whole domain name into its ASCII form for DNS lookup.
+ * UTF-8 version of uidna_nameToASCII(), same behavior.
+ *
+ * @param idna UIDNA instance
+ * @param name Input domain name
+ * @param length Domain name length, or -1 if NUL-terminated
+ * @param dest Destination string buffer
+ * @param capacity Destination buffer capacity
+ * @param pInfo Output container of IDNA processing details.
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return destination string length
+ * @draft ICU 4.6
+ */
+U_DRAFT int32_t U_EXPORT2
+uidna_nameToASCII_UTF8(const UIDNA *idna,
+ const char *name, int32_t length,
+ char *dest, int32_t capacity,
+ UIDNAInfo *pInfo, UErrorCode *pErrorCode);
+
+/**
+ * Converts a whole domain name into its Unicode form for human-readable display.
+ * UTF-8 version of uidna_nameToUnicode(), same behavior.
+ *
+ * @param idna UIDNA instance
+ * @param name Input domain name
+ * @param length Domain name length, or -1 if NUL-terminated
+ * @param dest Destination string buffer
+ * @param capacity Destination buffer capacity
+ * @param pInfo Output container of IDNA processing details.
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return destination string length
+ * @draft ICU 4.6
+ */
+U_DRAFT int32_t U_EXPORT2
+uidna_nameToUnicodeUTF8(const UIDNA *idna,
+ const char *name, int32_t length,
+ char *dest, int32_t capacity,
+ UIDNAInfo *pInfo, UErrorCode *pErrorCode);
+
+/*
+ * IDNA error bit set values.
+ * When a domain name or label fails a processing step or does not meet the
+ * validity criteria, then one or more of these error bits are set.
+ */
+enum {
+ /**
+ * A non-final domain name label (or the whole domain name) is empty.
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_EMPTY_LABEL=1,
+ /**
+ * A domain name label is longer than 63 bytes.
+ * (See STD13/RFC1034 3.1. Name space specifications and terminology.)
+ * This is only checked in ToASCII operations, and only if the output label is all-ASCII.
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_LABEL_TOO_LONG=2,
+ /**
+ * A domain name is longer than 255 bytes in its storage form.
+ * (See STD13/RFC1034 3.1. Name space specifications and terminology.)
+ * This is only checked in ToASCII operations, and only if the output domain name is all-ASCII.
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_DOMAIN_NAME_TOO_LONG=4,
+ /**
+ * A label starts with a hyphen-minus ('-').
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_LEADING_HYPHEN=8,
+ /**
+ * A label ends with a hyphen-minus ('-').
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_TRAILING_HYPHEN=0x10,
+ /**
+ * A label contains hyphen-minus ('-') in the third and fourth positions.
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_HYPHEN_3_4=0x20,
+ /**
+ * A label starts with a combining mark.
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_LEADING_COMBINING_MARK=0x40,
+ /**
+ * A label or domain name contains disallowed characters.
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_DISALLOWED=0x80,
+ /**
+ * A label starts with "xn--" but does not contain valid Punycode.
+ * That is, an xn-- label failed Punycode decoding.
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_PUNYCODE=0x100,
+ /**
+ * A label contains a dot=full stop.
+ * This can occur in an input string for a single-label function.
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_LABEL_HAS_DOT=0x200,
+ /**
+ * An ACE label does not contain a valid label string.
+ * The label was successfully ACE (Punycode) decoded but the resulting
+ * string had severe validation errors. For example,
+ * it might contain characters that are not allowed in ACE labels,
+ * or it might not be normalized.
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_INVALID_ACE_LABEL=0x400,
+ /**
+ * A label does not meet the IDNA BiDi requirements (for right-to-left characters).
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_BIDI=0x800,
+ /**
+ * A label does not meet the IDNA CONTEXTJ requirements.
+ * @draft ICU 4.6
+ */
+ UIDNA_ERROR_CONTEXTJ=0x1000
+};
+
+/* IDNA2003 API ------------------------------------------------------------- */
+
+/**
+ * IDNA2003: This function implements the ToASCII operation as defined in the IDNA RFC.
* This operation is done on <b>single labels</b> before sending it to something that expects
* ASCII names. A label is an individual part of a domain name. Labels are usually
- * separated by dots; e.g." "www.example.com" is composed of 3 labels
- * "www","example", and "com".
+ * separated by dots; e.g. "www.example.com" is composed of 3 labels "www","example", and "com".
*
+ * IDNA2003 API Overview:
+ *
+ * The uidna_ API implements the IDNA protocol as defined in the IDNA RFC
+ * (http://www.ietf.org/rfc/rfc3490.txt).
+ * The RFC defines 2 operations: ToASCII and ToUnicode. Domain name labels
+ * containing non-ASCII code points are processed by the
+ * ToASCII operation before passing it to resolver libraries. Domain names
+ * that are obtained from resolver libraries are processed by the
+ * ToUnicode operation before displaying the domain name to the user.
+ * IDNA requires that implementations process input strings with Nameprep
+ * (http://www.ietf.org/rfc/rfc3491.txt),
+ * which is a profile of Stringprep (http://www.ietf.org/rfc/rfc3454.txt),
+ * and then with Punycode (http://www.ietf.org/rfc/rfc3492.txt).
+ * Implementations of IDNA MUST fully implement Nameprep and Punycode;
+ * neither Nameprep nor Punycode are optional.
+ * The input and output of ToASCII and ToUnicode operations are Unicode
+ * and are designed to be chainable, i.e., applying ToASCII or ToUnicode operations
+ * multiple times to an input string will yield the same result as applying the operation
+ * once.
+ * ToUnicode(ToUnicode(ToUnicode...(ToUnicode(string)))) == ToUnicode(string)
+ * ToASCII(ToASCII(ToASCII...(ToASCII(string))) == ToASCII(string).
*
* @param src Input UChar array containing label in Unicode.
* @param srcLength Number of UChars in src, or -1 if NUL-terminated.
@@ -96,7 +518,7 @@
* - UIDNA_ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
* If this option is set, the unassigned code points are in the input
* are treated as normal Unicode code points.
- *
+ *
* - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
* If this option is set and the input does not satisfy STD3 rules,
* the operation will fail with U_IDNA_STD3_ASCII_RULES_ERROR
@@ -109,7 +531,8 @@
* U_INDEX_OUTOFBOUNDS_ERROR if src contains
* too many code points.
* U_BUFFER_OVERFLOW_ERROR if destCapacity is not enough
- * @return Number of ASCII characters converted.
+ * @return The length of the result string, if successful - or in case of a buffer overflow,
+ * in which case it will be greater than destCapacity.
* @stable ICU 2.6
*/
U_STABLE int32_t U_EXPORT2
@@ -121,18 +544,17 @@ uidna_toASCII(const UChar* src, int32_t srcLength,
/**
- * This function implements the ToUnicode operation as defined in the IDNA RFC.
+ * IDNA2003: This function implements the ToUnicode operation as defined in the IDNA RFC.
* This operation is done on <b>single labels</b> before sending it to something that expects
* Unicode names. A label is an individual part of a domain name. Labels are usually
- * separated by dots; for e.g." "www.example.com" is composed of 3 labels
- * "www","example", and "com".
+ * separated by dots; for e.g. "www.example.com" is composed of 3 labels "www","example", and "com".
*
* @param src Input UChar array containing ASCII (ACE encoded) label.
* @param srcLength Number of UChars in src, or -1 if NUL-terminated.
* @param dest Output Converted UChar array containing Unicode equivalent of label.
* @param destCapacity Size of dest.
* @param options A bit set of options:
- *
+ *
* - UIDNA_DEFAULT Use default options, i.e., do not process unassigned code points
* and do not use STD3 ASCII rules
* If unassigned code points are found the operation fails with
@@ -145,8 +567,6 @@ uidna_toASCII(const UChar* src, int32_t srcLength,
* verification of decoded ACE input by applying toASCII and comparing
* its output with source
*
- *
- *
* - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
* If this option is set and the input does not satisfy STD3 rules,
* the operation will fail with U_IDNA_STD3_ASCII_RULES_ERROR
@@ -159,7 +579,8 @@ uidna_toASCII(const UChar* src, int32_t srcLength,
* U_INDEX_OUTOFBOUNDS_ERROR if src contains
* too many code points.
* U_BUFFER_OVERFLOW_ERROR if destCapacity is not enough
- * @return Number of Unicode characters converted.
+ * @return The length of the result string, if successful - or in case of a buffer overflow,
+ * in which case it will be greater than destCapacity.
* @stable ICU 2.6
*/
U_STABLE int32_t U_EXPORT2
@@ -171,12 +592,12 @@ uidna_toUnicode(const UChar* src, int32_t srcLength,
/**
- * Convenience function that implements the IDNToASCII operation as defined in the IDNA RFC.
+ * IDNA2003: Convenience function that implements the IDNToASCII operation as defined in the IDNA RFC.
* This operation is done on complete domain names, e.g: "www.example.com".
* It is important to note that this operation can fail. If it fails, then the input
* domain name cannot be used as an Internationalized Domain Name and the application
* should have methods defined to deal with the failure.
- *
+ *
* <b>Note:</b> IDNA RFC specifies that a conformant application should divide a domain name
* into separate labels, decide whether to apply allowUnassigned and useSTD3ASCIIRules on each,
* and then convert. This function does not offer that level of granularity. The options once
@@ -187,7 +608,7 @@ uidna_toUnicode(const UChar* src, int32_t srcLength,
* @param dest Output UChar array with ASCII (ACE encoded) IDN.
* @param destCapacity Size of dest.
* @param options A bit set of options:
- *
+ *
* - UIDNA_DEFAULT Use default options, i.e., do not process unassigned code points
* and do not use STD3 ASCII rules
* If unassigned code points are found the operation fails with
@@ -196,11 +617,11 @@ uidna_toUnicode(const UChar* src, int32_t srcLength,
* - UIDNA_ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
* If this option is set, the unassigned code points are in the input
* are treated as normal Unicode code points.
- *
+ *
* - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
* If this option is set and the input does not satisfy STD3 rules,
* the operation will fail with U_IDNA_STD3_ASCII_RULES_ERROR
- *
+ *
* @param parseError Pointer to UParseError struct to receive information on position
* of error if an error is encountered. Can be NULL.
* @param status ICU in/out error code parameter.
@@ -209,7 +630,8 @@ uidna_toUnicode(const UChar* src, int32_t srcLength,
* U_INDEX_OUTOFBOUNDS_ERROR if src contains
* too many code points.
* U_BUFFER_OVERFLOW_ERROR if destCapacity is not enough
- * @return Number of ASCII characters converted.
+ * @return The length of the result string, if successful - or in case of a buffer overflow,
+ * in which case it will be greater than destCapacity.
* @stable ICU 2.6
*/
U_STABLE int32_t U_EXPORT2
@@ -220,7 +642,7 @@ uidna_IDNToASCII( const UChar* src, int32_t srcLength,
UErrorCode* status);
/**
- * Convenience function that implements the IDNToUnicode operation as defined in the IDNA RFC.
+ * IDNA2003: Convenience function that implements the IDNToUnicode operation as defined in the IDNA RFC.
* This operation is done on complete domain names, e.g: "www.example.com".
*
* <b>Note:</b> IDNA RFC specifies that a conformant application should divide a domain name
@@ -233,7 +655,7 @@ uidna_IDNToASCII( const UChar* src, int32_t srcLength,
* @param dest Output UChar array containing Unicode equivalent of source IDN.
* @param destCapacity Size of dest.
* @param options A bit set of options:
- *
+ *
* - UIDNA_DEFAULT Use default options, i.e., do not process unassigned code points
* and do not use STD3 ASCII rules
* If unassigned code points are found the operation fails with
@@ -242,7 +664,7 @@ uidna_IDNToASCII( const UChar* src, int32_t srcLength,
* - UIDNA_ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
* If this option is set, the unassigned code points are in the input
* are treated as normal Unicode code points.
- *
+ *
* - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
* If this option is set and the input does not satisfy STD3 rules,
* the operation will fail with U_IDNA_STD3_ASCII_RULES_ERROR
@@ -255,7 +677,8 @@ uidna_IDNToASCII( const UChar* src, int32_t srcLength,
* U_INDEX_OUTOFBOUNDS_ERROR if src contains
* too many code points.
* U_BUFFER_OVERFLOW_ERROR if destCapacity is not enough
- * @return Number of ASCII characters converted.
+ * @return The length of the result string, if successful - or in case of a buffer overflow,
+ * in which case it will be greater than destCapacity.
* @stable ICU 2.6
*/
U_STABLE int32_t U_EXPORT2
@@ -266,7 +689,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength,
UErrorCode* status);
/**
- * Compare two IDN strings for equivalence.
+ * IDNA2003: Compare two IDN strings for equivalence.
* This function splits the domain names into labels and compares them.
* According to IDN RFC, whenever two labels are compared, they are
* considered equal if and only if their ASCII forms (obtained by
@@ -280,7 +703,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength,
* @param s2 Second source string.
* @param length2 Length of second source string, or -1 if NUL-terminated.
* @param options A bit set of options:
- *
+ *
* - UIDNA_DEFAULT Use default options, i.e., do not process unassigned code points
* and do not use STD3 ASCII rules
* If unassigned code points are found the operation fails with
@@ -289,7 +712,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength,
* - UIDNA_ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
* If this option is set, the unassigned code points are in the input
* are treated as normal Unicode code points.
- *
+ *
* - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
* If this option is set and the input does not satisfy STD3 rules,
* the operation will fail with U_IDNA_STD3_ASCII_RULES_ERROR
diff --git a/Source/WebKit/mac/icu/unicode/uiter.h b/Source/WebKit/mac/icu/unicode/uiter.h
index 963df5cf9..b469e24e6 100644
--- a/Source/WebKit/mac/icu/unicode/uiter.h
+++ b/Source/WebKit/mac/icu/unicode/uiter.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2002-2004, International Business Machines
+* Copyright (C) 2002-2006,2009 International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -26,7 +26,7 @@
#include "unicode/utypes.h"
-#ifdef XP_CPLUSPLUS
+#if U_SHOW_CPLUSPLUS_API
U_NAMESPACE_BEGIN
class CharacterIterator;
@@ -650,7 +650,7 @@ uiter_setUTF16BE(UCharIterator *iter, const char *s, int32_t length);
U_STABLE void U_EXPORT2
uiter_setUTF8(UCharIterator *iter, const char *s, int32_t length);
-#ifdef XP_CPLUSPLUS
+#if U_SHOW_CPLUSPLUS_API
/**
* Set up a UCharIterator to wrap around a C++ CharacterIterator.
@@ -673,7 +673,7 @@ uiter_setUTF8(UCharIterator *iter, const char *s, int32_t length);
* @stable ICU 2.1
*/
U_STABLE void U_EXPORT2
-uiter_setCharacterIterator(UCharIterator *iter, CharacterIterator *charIter);
+uiter_setCharacterIterator(UCharIterator *iter, U_NAMESPACE_QUALIFIER CharacterIterator *charIter);
/**
* Set up a UCharIterator to iterate over a C++ Replaceable.
@@ -698,7 +698,7 @@ uiter_setCharacterIterator(UCharIterator *iter, CharacterIterator *charIter);
* @stable ICU 2.1
*/
U_STABLE void U_EXPORT2
-uiter_setReplaceable(UCharIterator *iter, const Replaceable *rep);
+uiter_setReplaceable(UCharIterator *iter, const U_NAMESPACE_QUALIFIER Replaceable *rep);
#endif
diff --git a/Source/WebKit/mac/icu/unicode/umachine.h b/Source/WebKit/mac/icu/unicode/umachine.h
index d841f5348..abbdcb79f 100644
--- a/Source/WebKit/mac/icu/unicode/umachine.h
+++ b/Source/WebKit/mac/icu/unicode/umachine.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2010, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -26,25 +26,30 @@
/**
* \file
- * \brief Basic types and constants for UTF
- *
+ * \brief Basic types and constants for UTF
+ *
* <h2> Basic types and constants for UTF </h2>
* This file defines basic types and constants for utf.h to be
* platform-independent. umachine.h and utf.h are included into
* utypes.h to provide all the general definitions for ICU.
* All of these definitions used to be in utypes.h before
* the UTF-handling macros made this unmaintainable.
- *
+ *
*/
/*==========================================================================*/
/* Include platform-dependent definitions */
/* which are contained in the platform-specific file platform.h */
/*==========================================================================*/
-#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
+#if defined(U_PALMOS)
+# include "unicode/ppalmos.h"
+#elif !defined(__MINGW32__) && (defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64))
+#ifdef CYGWINMSVC
+# include "unicode/platform.h"
+#endif
# include "unicode/pwin32.h"
#else
-# include "unicode/platform.h"
+# include "unicode/ptypes.h" /* platform.h is included in ptypes.h */
#endif
/*
@@ -86,7 +91,7 @@
/**
* \def U_CDECL_END
- * This is used to end a declaration of a library private ICU C API
+ * This is used to end a declaration of a library private ICU C API
* @stable ICU 2.4
*/
@@ -101,54 +106,33 @@
#endif
/**
- * \def U_NAMESPACE_BEGIN
- * This is used to begin a declaration of a public ICU C++ API.
- * If the compiler doesn't support namespaces, this does nothing.
- * @stable ICU 2.4
- */
-
-/**
- * \def U_NAMESPACE_END
- * This is used to end a declaration of a public ICU C++ API
- * If the compiler doesn't support namespaces, this does nothing.
- * @stable ICU 2.4
- */
-
-/**
- * \def U_NAMESPACE_USE
- * This is used to specify that the rest of the code uses the
- * public ICU C++ API namespace.
- * If the compiler doesn't support namespaces, this does nothing.
- * @stable ICU 2.4
+ * \def U_ATTRIBUTE_DEPRECATED
+ * This is used for GCC specific attributes
+ * @internal
*/
-
+#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2))
+# define U_ATTRIBUTE_DEPRECATED __attribute__ ((deprecated))
/**
- * \def U_NAMESPACE_QUALIFIER
- * This is used to qualify that a function or class is part of
- * the public ICU C++ API namespace.
- * If the compiler doesn't support namespaces, this does nothing.
- * @stable ICU 2.4
+ * \def U_ATTRIBUTE_DEPRECATED
+ * This is used for Visual C++ specific attributes
+ * @internal
*/
-
-/* Define namespace symbols if the compiler supports it. */
-#if U_HAVE_NAMESPACE
-# define U_NAMESPACE_BEGIN namespace U_ICU_NAMESPACE {
-# define U_NAMESPACE_END }
-# define U_NAMESPACE_USE using namespace U_ICU_NAMESPACE;
-# define U_NAMESPACE_QUALIFIER U_ICU_NAMESPACE::
+#elif defined(U_WINDOWS) && defined(_MSC_VER) && (_MSC_VER >= 1400)
+# define U_ATTRIBUTE_DEPRECATED __declspec(deprecated)
#else
-# define U_NAMESPACE_BEGIN
-# define U_NAMESPACE_END
-# define U_NAMESPACE_USE
-# define U_NAMESPACE_QUALIFIER
+# define U_ATTRIBUTE_DEPRECATED
#endif
-
/** This is used to declare a function as a public ICU C API @stable ICU 2.0*/
#define U_CAPI U_CFUNC U_EXPORT
+/** This is used to declare a function as a stable public ICU C API*/
#define U_STABLE U_CAPI
+/** This is used to declare a function as a draft public ICU C API */
#define U_DRAFT U_CAPI
-#define U_DEPRECATED U_CAPI
+/** This is used to declare a function as a deprecated public ICU C API */
+#define U_DEPRECATED U_CAPI U_ATTRIBUTE_DEPRECATED
+/** This is used to declare a function as an obsolete public ICU C API */
#define U_OBSOLETE U_CAPI
+/** This is used to declare a function as an internal ICU C API */
#define U_INTERNAL U_CAPI
/*==========================================================================*/
@@ -201,7 +185,7 @@
/**
* Provides a platform independent way to specify a signed 64-bit integer constant.
* note: may be wrong for some 64 bit platforms - ensure your compiler provides INT64_C
- * @draft ICU 2.8
+ * @stable ICU 2.8
*/
# define INT64_C(c) c ## LL
# endif
@@ -209,7 +193,7 @@
/**
* Provides a platform independent way to specify an unsigned 64-bit integer constant.
* note: may be wrong for some 64 bit platforms - ensure your compiler provides UINT64_C
- * @draft ICU 2.8
+ * @stable ICU 2.8
*/
# define UINT64_C(c) c ## ULL
# endif
@@ -284,7 +268,7 @@ typedef int8_t UBool;
* @stable ICU 2.0
*/
#if !defined(U_WCHAR_IS_UTF16) && !defined(U_WCHAR_IS_UTF32)
-# ifdef __STDC_ISO_10646__
+# ifdef __STDC_ISO_10646__
# if (U_SIZEOF_WCHAR_T==2)
# define U_WCHAR_IS_UTF16
# elif (U_SIZEOF_WCHAR_T==4)
@@ -298,8 +282,8 @@ typedef int8_t UBool;
# if (U_SIZEOF_WCHAR_T==4)
# define U_WCHAR_IS_UTF32
# endif
-# elif defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
-# define U_WCHAR_IS_UTF16
+# elif defined(U_WINDOWS)
+# define U_WCHAR_IS_UTF16
# endif
#endif
@@ -311,17 +295,23 @@ typedef int8_t UBool;
/**
* \var UChar
* Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned.
- * If wchar_t is not 16 bits wide, then define UChar to be uint16_t.
+ * If wchar_t is not 16 bits wide, then define UChar to be uint16_t or char16_t because GCC >=4.4
+ * can handle UTF16 string literals.
* This makes the definition of UChar platform-dependent
* but allows direct string type compatibility with platforms with
* 16-bit wchar_t types.
*
- * @stable ICU 2.0
+ * @draft ICU 4.4
*/
/* Define UChar to be compatible with wchar_t if possible. */
#if U_SIZEOF_WCHAR_T==2
typedef wchar_t UChar;
+#elif U_GNUC_UTF16_STRING
+#if defined _GCC_
+ typedef __CHAR16_TYPE__ char16_t;
+#endif
+ typedef char16_t UChar;
#else
typedef uint16_t UChar;
#endif
@@ -352,6 +342,8 @@ typedef int32_t UChar32;
/* the OS in use. */
/*==========================================================================*/
+#ifndef U_HIDE_INTERNAL_API
+
/**
* \def U_ALIGN_CODE
* This is used to align code fragments to a specific byte boundary.
@@ -362,8 +354,19 @@ typedef int32_t UChar32;
# define U_ALIGN_CODE(n)
#endif
+#endif /* U_HIDE_INTERNAL_API */
+
+/**
+ * \def U_INLINE
+ * This is used to request inlining of a function, on platforms and languages which support it.
+ */
+
#ifndef U_INLINE
-# define U_INLINE
+# ifdef XP_CPLUSPLUS
+# define U_INLINE inline
+# else
+# define U_INLINE
+# endif
#endif
#include "unicode/urename.h"
diff --git a/Source/WebKit/mac/icu/unicode/unorm.h b/Source/WebKit/mac/icu/unicode/unorm.h
index 8bdbee7c6..fbb7b49b3 100644
--- a/Source/WebKit/mac/icu/unicode/unorm.h
+++ b/Source/WebKit/mac/icu/unicode/unorm.h
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (c) 1996-2004, International Business Machines Corporation
+* Copyright (c) 1996-2010, International Business Machines Corporation
* and others. All Rights Reserved.
*******************************************************************************
* File unorm.h
@@ -20,6 +20,7 @@
#if !UCONFIG_NO_NORMALIZATION
#include "unicode/uiter.h"
+#include "unicode/unorm2.h"
/**
* \file
@@ -27,11 +28,16 @@
*
* <h2>Unicode normalization API</h2>
*
+ * Note: This API has been replaced by the unorm2.h API and is only available
+ * for backward compatibility. The functions here simply delegate to the
+ * unorm2.h functions, for example unorm2_getInstance() and unorm2_normalize().
+ * There is one exception: The new API does not provide a replacement for unorm_compare().
+ *
* <code>unorm_normalize</code> transforms Unicode text into an equivalent composed or
* decomposed form, allowing for easier sorting and searching of text.
* <code>unorm_normalize</code> supports the standard normalization forms described in
* <a href="http://www.unicode.org/unicode/reports/tr15/" target="unicode">
- * Unicode Standard Annex #15 &#8212; Unicode Normalization Forms</a>.
+ * Unicode Standard Annex #15: Unicode Normalization Forms</a>.
*
* Characters with accents or other adornments can be encoded in
* several different ways in Unicode. For example, take the character A-acute.
@@ -106,7 +112,7 @@
* unorm_normalize(UNORM_FCD) may be implemented with UNORM_NFD.
*
* For more details on FCD see the collation design document:
- * http://oss.software.ibm.com/cvs/icu/~checkout~/icuhtml/design/collation/ICU_collation_design.htm
+ * http://source.icu-project.org/repos/icu/icuhtml/trunk/design/collation/ICU_collation_design.htm
*
* ICU collation performs either NFD or FCD normalization automatically if normalization
* is turned on for the collator object.
@@ -182,6 +188,7 @@ enum {
* Normalize a string.
* The string will be normalized according the specified normalization mode
* and options.
+ * The source and result buffers must not be the same, nor overlap.
*
* @param source The string to normalize.
* @param sourceLength The length of source, or -1 if NUL-terminated.
@@ -201,28 +208,7 @@ unorm_normalize(const UChar *source, int32_t sourceLength,
UNormalizationMode mode, int32_t options,
UChar *result, int32_t resultLength,
UErrorCode *status);
-#endif
-/**
- * Result values for unorm_quickCheck().
- * For details see Unicode Technical Report 15.
- * @stable ICU 2.0
- */
-typedef enum UNormalizationCheckResult {
- /**
- * Indicates that string is not in the normalized format
- */
- UNORM_NO,
- /**
- * Indicates that string is in the normalized format
- */
- UNORM_YES,
- /**
- * Indicates that string cannot be determined if it is in the normalized
- * format without further thorough checks.
- */
- UNORM_MAYBE
-} UNormalizationCheckResult;
-#if !UCONFIG_NO_NORMALIZATION
+
/**
* Performing quick check on a string, to quickly determine if the string is
* in a particular normalization format.
@@ -451,7 +437,7 @@ unorm_previous(UCharIterator *src,
*
* @param left Left source string, may be same as dest.
* @param leftLength Length of left source string, or -1 if NUL-terminated.
- * @param right Right source string.
+ * @param right Right source string. Must not be the same as dest, nor overlap.
* @param rightLength Length of right source string, or -1 if NUL-terminated.
* @param dest The output buffer; can be NULL if destCapacity==0 for pure preflighting.
* @param destCapacity The number of UChars that fit into dest.
diff --git a/Source/WebKit/mac/icu/unicode/unorm2.h b/Source/WebKit/mac/icu/unicode/unorm2.h
new file mode 100644
index 000000000..a522b4735
--- /dev/null
+++ b/Source/WebKit/mac/icu/unicode/unorm2.h
@@ -0,0 +1,391 @@
+/*
+*******************************************************************************
+*
+* Copyright (C) 2009-2010, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+*******************************************************************************
+* file name: unorm2.h
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2009dec15
+* created by: Markus W. Scherer
+*/
+
+#ifndef __UNORM2_H__
+#define __UNORM2_H__
+
+/**
+ * \file
+ * \brief C API: New API for Unicode Normalization.
+ *
+ * Unicode normalization functionality for standard Unicode normalization or
+ * for using custom mapping tables.
+ * All instances of UNormalizer2 are unmodifiable/immutable.
+ * Instances returned by unorm2_getInstance() are singletons that must not be deleted by the caller.
+ * For more details see the Normalizer2 C++ class.
+ */
+
+#include "unicode/utypes.h"
+#include "unicode/localpointer.h"
+#include "unicode/uset.h"
+
+/**
+ * Constants for normalization modes.
+ * For details about standard Unicode normalization forms
+ * and about the algorithms which are also used with custom mapping tables
+ * see http://www.unicode.org/unicode/reports/tr15/
+ * @stable ICU 4.4
+ */
+typedef enum {
+ /**
+ * Decomposition followed by composition.
+ * Same as standard NFC when using an "nfc" instance.
+ * Same as standard NFKC when using an "nfkc" instance.
+ * For details about standard Unicode normalization forms
+ * see http://www.unicode.org/unicode/reports/tr15/
+ * @stable ICU 4.4
+ */
+ UNORM2_COMPOSE,
+ /**
+ * Map, and reorder canonically.
+ * Same as standard NFD when using an "nfc" instance.
+ * Same as standard NFKD when using an "nfkc" instance.
+ * For details about standard Unicode normalization forms
+ * see http://www.unicode.org/unicode/reports/tr15/
+ * @stable ICU 4.4
+ */
+ UNORM2_DECOMPOSE,
+ /**
+ * "Fast C or D" form.
+ * If a string is in this form, then further decomposition <i>without reordering</i>
+ * would yield the same form as DECOMPOSE.
+ * Text in "Fast C or D" form can be processed efficiently with data tables
+ * that are "canonically closed", that is, that provide equivalent data for
+ * equivalent text, without having to be fully normalized.
+ * Not a standard Unicode normalization form.
+ * Not a unique form: Different FCD strings can be canonically equivalent.
+ * For details see http://www.unicode.org/notes/tn5/#FCD
+ * @stable ICU 4.4
+ */
+ UNORM2_FCD,
+ /**
+ * Compose only contiguously.
+ * Also known as "FCC" or "Fast C Contiguous".
+ * The result will often but not always be in NFC.
+ * The result will conform to FCD which is useful for processing.
+ * Not a standard Unicode normalization form.
+ * For details see http://www.unicode.org/notes/tn5/#FCC
+ * @stable ICU 4.4
+ */
+ UNORM2_COMPOSE_CONTIGUOUS
+} UNormalization2Mode;
+
+/**
+ * Result values for normalization quick check functions.
+ * For details see http://www.unicode.org/reports/tr15/#Detecting_Normalization_Forms
+ * @stable ICU 2.0
+ */
+typedef enum UNormalizationCheckResult {
+ /**
+ * The input string is not in the normalization form.
+ * @stable ICU 2.0
+ */
+ UNORM_NO,
+ /**
+ * The input string is in the normalization form.
+ * @stable ICU 2.0
+ */
+ UNORM_YES,
+ /**
+ * The input string may or may not be in the normalization form.
+ * This value is only returned for composition forms like NFC and FCC,
+ * when a backward-combining character is found for which the surrounding text
+ * would have to be analyzed further.
+ * @stable ICU 2.0
+ */
+ UNORM_MAYBE
+} UNormalizationCheckResult;
+
+/**
+ * Opaque C service object type for the new normalization API.
+ * @stable ICU 4.4
+ */
+struct UNormalizer2;
+typedef struct UNormalizer2 UNormalizer2; /**< C typedef for struct UNormalizer2. @stable ICU 4.4 */
+
+#if !UCONFIG_NO_NORMALIZATION
+
+/**
+ * Returns a UNormalizer2 instance which uses the specified data file
+ * (packageName/name similar to ucnv_openPackage() and ures_open()/ResourceBundle)
+ * and which composes or decomposes text according to the specified mode.
+ * Returns an unmodifiable singleton instance. Do not delete it.
+ *
+ * Use packageName=NULL for data files that are part of ICU's own data.
+ * Use name="nfc" and UNORM2_COMPOSE/UNORM2_DECOMPOSE for Unicode standard NFC/NFD.
+ * Use name="nfkc" and UNORM2_COMPOSE/UNORM2_DECOMPOSE for Unicode standard NFKC/NFKD.
+ * Use name="nfkc_cf" and UNORM2_COMPOSE for Unicode standard NFKC_CF=NFKC_Casefold.
+ *
+ * @param packageName NULL for ICU built-in data, otherwise application data package name
+ * @param name "nfc" or "nfkc" or "nfkc_cf" or name of custom data file
+ * @param mode normalization mode (compose or decompose etc.)
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return the requested UNormalizer2, if successful
+ * @stable ICU 4.4
+ */
+U_STABLE const UNormalizer2 * U_EXPORT2
+unorm2_getInstance(const char *packageName,
+ const char *name,
+ UNormalization2Mode mode,
+ UErrorCode *pErrorCode);
+
+/**
+ * Constructs a filtered normalizer wrapping any UNormalizer2 instance
+ * and a filter set.
+ * Both are aliased and must not be modified or deleted while this object
+ * is used.
+ * The filter set should be frozen; otherwise the performance will suffer greatly.
+ * @param norm2 wrapped UNormalizer2 instance
+ * @param filterSet USet which determines the characters to be normalized
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return the requested UNormalizer2, if successful
+ * @stable ICU 4.4
+ */
+U_STABLE UNormalizer2 * U_EXPORT2
+unorm2_openFiltered(const UNormalizer2 *norm2, const USet *filterSet, UErrorCode *pErrorCode);
+
+/**
+ * Closes a UNormalizer2 instance from unorm2_openFiltered().
+ * Do not close instances from unorm2_getInstance()!
+ * @param norm2 UNormalizer2 instance to be closed
+ * @stable ICU 4.4
+ */
+U_STABLE void U_EXPORT2
+unorm2_close(UNormalizer2 *norm2);
+
+#if U_SHOW_CPLUSPLUS_API
+
+U_NAMESPACE_BEGIN
+
+/**
+ * \class LocalUNormalizer2Pointer
+ * "Smart pointer" class, closes a UNormalizer2 via unorm2_close().
+ * For most methods see the LocalPointerBase base class.
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @stable ICU 4.4
+ */
+U_DEFINE_LOCAL_OPEN_POINTER(LocalUNormalizer2Pointer, UNormalizer2, unorm2_close);
+
+U_NAMESPACE_END
+
+#endif
+
+/**
+ * Writes the normalized form of the source string to the destination string
+ * (replacing its contents) and returns the length of the destination string.
+ * The source and destination strings must be different buffers.
+ * @param norm2 UNormalizer2 instance
+ * @param src source string
+ * @param length length of the source string, or -1 if NUL-terminated
+ * @param dest destination string; its contents is replaced with normalized src
+ * @param capacity number of UChars that can be written to dest
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return dest
+ * @stable ICU 4.4
+ */
+U_STABLE int32_t U_EXPORT2
+unorm2_normalize(const UNormalizer2 *norm2,
+ const UChar *src, int32_t length,
+ UChar *dest, int32_t capacity,
+ UErrorCode *pErrorCode);
+/**
+ * Appends the normalized form of the second string to the first string
+ * (merging them at the boundary) and returns the length of the first string.
+ * The result is normalized if the first string was normalized.
+ * The first and second strings must be different buffers.
+ * @param norm2 UNormalizer2 instance
+ * @param first string, should be normalized
+ * @param firstLength length of the first string, or -1 if NUL-terminated
+ * @param firstCapacity number of UChars that can be written to first
+ * @param second string, will be normalized
+ * @param secondLength length of the source string, or -1 if NUL-terminated
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return first
+ * @stable ICU 4.4
+ */
+U_STABLE int32_t U_EXPORT2
+unorm2_normalizeSecondAndAppend(const UNormalizer2 *norm2,
+ UChar *first, int32_t firstLength, int32_t firstCapacity,
+ const UChar *second, int32_t secondLength,
+ UErrorCode *pErrorCode);
+/**
+ * Appends the second string to the first string
+ * (merging them at the boundary) and returns the length of the first string.
+ * The result is normalized if both the strings were normalized.
+ * The first and second strings must be different buffers.
+ * @param norm2 UNormalizer2 instance
+ * @param first string, should be normalized
+ * @param firstLength length of the first string, or -1 if NUL-terminated
+ * @param firstCapacity number of UChars that can be written to first
+ * @param second string, should be normalized
+ * @param secondLength length of the source string, or -1 if NUL-terminated
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return first
+ * @stable ICU 4.4
+ */
+U_STABLE int32_t U_EXPORT2
+unorm2_append(const UNormalizer2 *norm2,
+ UChar *first, int32_t firstLength, int32_t firstCapacity,
+ const UChar *second, int32_t secondLength,
+ UErrorCode *pErrorCode);
+
+/**
+ * Gets the decomposition mapping of c. Equivalent to unorm2_normalize(string(c))
+ * on a UNORM2_DECOMPOSE UNormalizer2 instance, but much faster.
+ * This function is independent of the mode of the UNormalizer2.
+ * @param norm2 UNormalizer2 instance
+ * @param c code point
+ * @param decomposition String buffer which will be set to c's
+ * decomposition mapping, if there is one.
+ * @param capacity number of UChars that can be written to decomposition
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return the non-negative length of c's decomposition, if there is one; otherwise a negative value
+ * @draft ICU 4.6
+ */
+U_DRAFT int32_t U_EXPORT2
+unorm2_getDecomposition(const UNormalizer2 *norm2,
+ UChar32 c, UChar *decomposition, int32_t capacity,
+ UErrorCode *pErrorCode);
+
+/**
+ * Tests if the string is normalized.
+ * Internally, in cases where the quickCheck() method would return "maybe"
+ * (which is only possible for the two COMPOSE modes) this method
+ * resolves to "yes" or "no" to provide a definitive result,
+ * at the cost of doing more work in those cases.
+ * @param norm2 UNormalizer2 instance
+ * @param s input string
+ * @param length length of the string, or -1 if NUL-terminated
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return TRUE if s is normalized
+ * @stable ICU 4.4
+ */
+U_STABLE UBool U_EXPORT2
+unorm2_isNormalized(const UNormalizer2 *norm2,
+ const UChar *s, int32_t length,
+ UErrorCode *pErrorCode);
+
+/**
+ * Tests if the string is normalized.
+ * For the two COMPOSE modes, the result could be "maybe" in cases that
+ * would take a little more work to resolve definitively.
+ * Use spanQuickCheckYes() and normalizeSecondAndAppend() for a faster
+ * combination of quick check + normalization, to avoid
+ * re-checking the "yes" prefix.
+ * @param norm2 UNormalizer2 instance
+ * @param s input string
+ * @param length length of the string, or -1 if NUL-terminated
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return UNormalizationCheckResult
+ * @stable ICU 4.4
+ */
+U_STABLE UNormalizationCheckResult U_EXPORT2
+unorm2_quickCheck(const UNormalizer2 *norm2,
+ const UChar *s, int32_t length,
+ UErrorCode *pErrorCode);
+
+/**
+ * Returns the end of the normalized substring of the input string.
+ * In other words, with <code>end=spanQuickCheckYes(s, ec);</code>
+ * the substring <code>UnicodeString(s, 0, end)</code>
+ * will pass the quick check with a "yes" result.
+ *
+ * The returned end index is usually one or more characters before the
+ * "no" or "maybe" character: The end index is at a normalization boundary.
+ * (See the class documentation for more about normalization boundaries.)
+ *
+ * When the goal is a normalized string and most input strings are expected
+ * to be normalized already, then call this method,
+ * and if it returns a prefix shorter than the input string,
+ * copy that prefix and use normalizeSecondAndAppend() for the remainder.
+ * @param norm2 UNormalizer2 instance
+ * @param s input string
+ * @param length length of the string, or -1 if NUL-terminated
+ * @param pErrorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return "yes" span end index
+ * @stable ICU 4.4
+ */
+U_STABLE int32_t U_EXPORT2
+unorm2_spanQuickCheckYes(const UNormalizer2 *norm2,
+ const UChar *s, int32_t length,
+ UErrorCode *pErrorCode);
+
+/**
+ * Tests if the character always has a normalization boundary before it,
+ * regardless of context.
+ * For details see the Normalizer2 base class documentation.
+ * @param norm2 UNormalizer2 instance
+ * @param c character to test
+ * @return TRUE if c has a normalization boundary before it
+ * @stable ICU 4.4
+ */
+U_STABLE UBool U_EXPORT2
+unorm2_hasBoundaryBefore(const UNormalizer2 *norm2, UChar32 c);
+
+/**
+ * Tests if the character always has a normalization boundary after it,
+ * regardless of context.
+ * For details see the Normalizer2 base class documentation.
+ * @param norm2 UNormalizer2 instance
+ * @param c character to test
+ * @return TRUE if c has a normalization boundary after it
+ * @stable ICU 4.4
+ */
+U_STABLE UBool U_EXPORT2
+unorm2_hasBoundaryAfter(const UNormalizer2 *norm2, UChar32 c);
+
+/**
+ * Tests if the character is normalization-inert.
+ * For details see the Normalizer2 base class documentation.
+ * @param norm2 UNormalizer2 instance
+ * @param c character to test
+ * @return TRUE if c is normalization-inert
+ * @stable ICU 4.4
+ */
+U_STABLE UBool U_EXPORT2
+unorm2_isInert(const UNormalizer2 *norm2, UChar32 c);
+
+#endif /* !UCONFIG_NO_NORMALIZATION */
+#endif /* __UNORM2_H__ */
diff --git a/Source/WebKit/mac/icu/unicode/urename.h b/Source/WebKit/mac/icu/unicode/urename.h
index 55625921f..468bdbd0f 100644
--- a/Source/WebKit/mac/icu/unicode/urename.h
+++ b/Source/WebKit/mac/icu/unicode/urename.h
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 2002-2004, International Business Machines
+* Copyright (C) 2002-2010, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
*
@@ -27,1438 +27,2211 @@
#if !U_DISABLE_RENAMING
+/* We need the U_ICU_ENTRY_POINT_RENAME definition. There's a default one in unicode/uvernum.h we can use, but we will give
+ the platform a chance to define it first.
+ Normally (if utypes.h or umachine.h was included first) this will not be necessary as it will already be defined.
+ */
+#ifndef U_ICU_ENTRY_POINT_RENAME
+#include "unicode/umachine.h"
+#endif
+
+/* If we still don't have U_ICU_ENTRY_POINT_RENAME use the default. */
+#ifndef U_ICU_ENTRY_POINT_RENAME
+#include "unicode/uvernum.h"
+#endif
+
+/* Error out before the following defines cause very strange and unexpected code breakage */
+#ifndef U_ICU_ENTRY_POINT_RENAME
+#error U_ICU_ENTRY_POINT_RENAME is not defined - cannot continue. Consider defining U_DISABLE_RENAMING if renaming should not be used.
+#endif
+
+
/* C exports renaming data */
-#define T_CString_int64ToString T_CString_int64ToString_3_2
-#define T_CString_integerToString T_CString_integerToString_3_2
-#define T_CString_stricmp T_CString_stricmp_3_2
-#define T_CString_stringToInteger T_CString_stringToInteger_3_2
-#define T_CString_strnicmp T_CString_strnicmp_3_2
-#define T_CString_toLowerCase T_CString_toLowerCase_3_2
-#define T_CString_toUpperCase T_CString_toUpperCase_3_2
-#define T_FileStream_close T_FileStream_close_3_2
-#define T_FileStream_eof T_FileStream_eof_3_2
-#define T_FileStream_error T_FileStream_error_3_2
-#define T_FileStream_file_exists T_FileStream_file_exists_3_2
-#define T_FileStream_getc T_FileStream_getc_3_2
-#define T_FileStream_open T_FileStream_open_3_2
-#define T_FileStream_peek T_FileStream_peek_3_2
-#define T_FileStream_putc T_FileStream_putc_3_2
-#define T_FileStream_read T_FileStream_read_3_2
-#define T_FileStream_readLine T_FileStream_readLine_3_2
-#define T_FileStream_remove T_FileStream_remove_3_2
-#define T_FileStream_rewind T_FileStream_rewind_3_2
-#define T_FileStream_size T_FileStream_size_3_2
-#define T_FileStream_stderr T_FileStream_stderr_3_2
-#define T_FileStream_stdin T_FileStream_stdin_3_2
-#define T_FileStream_stdout T_FileStream_stdout_3_2
-#define T_FileStream_ungetc T_FileStream_ungetc_3_2
-#define T_FileStream_write T_FileStream_write_3_2
-#define T_FileStream_writeLine T_FileStream_writeLine_3_2
-#define UCNV_FROM_U_CALLBACK_ESCAPE UCNV_FROM_U_CALLBACK_ESCAPE_3_2
-#define UCNV_FROM_U_CALLBACK_SKIP UCNV_FROM_U_CALLBACK_SKIP_3_2
-#define UCNV_FROM_U_CALLBACK_STOP UCNV_FROM_U_CALLBACK_STOP_3_2
-#define UCNV_FROM_U_CALLBACK_SUBSTITUTE UCNV_FROM_U_CALLBACK_SUBSTITUTE_3_2
-#define UCNV_TO_U_CALLBACK_ESCAPE UCNV_TO_U_CALLBACK_ESCAPE_3_2
-#define UCNV_TO_U_CALLBACK_SKIP UCNV_TO_U_CALLBACK_SKIP_3_2
-#define UCNV_TO_U_CALLBACK_STOP UCNV_TO_U_CALLBACK_STOP_3_2
-#define UCNV_TO_U_CALLBACK_SUBSTITUTE UCNV_TO_U_CALLBACK_SUBSTITUTE_3_2
-#define UDataMemory_createNewInstance UDataMemory_createNewInstance_3_2
-#define UDataMemory_init UDataMemory_init_3_2
-#define UDataMemory_isLoaded UDataMemory_isLoaded_3_2
-#define UDataMemory_normalizeDataPointer UDataMemory_normalizeDataPointer_3_2
-#define UDataMemory_setData UDataMemory_setData_3_2
-#define UDatamemory_assign UDatamemory_assign_3_2
-#define _ASCIIData _ASCIIData_3_2
-#define _Bocu1Data _Bocu1Data_3_2
-#define _CESU8Data _CESU8Data_3_2
-#define _HZData _HZData_3_2
-#define _IMAPData _IMAPData_3_2
-#define _ISCIIData _ISCIIData_3_2
-#define _ISO2022Data _ISO2022Data_3_2
-#define _LMBCSData1 _LMBCSData1_3_2
-#define _LMBCSData11 _LMBCSData11_3_2
-#define _LMBCSData16 _LMBCSData16_3_2
-#define _LMBCSData17 _LMBCSData17_3_2
-#define _LMBCSData18 _LMBCSData18_3_2
-#define _LMBCSData19 _LMBCSData19_3_2
-#define _LMBCSData2 _LMBCSData2_3_2
-#define _LMBCSData3 _LMBCSData3_3_2
-#define _LMBCSData4 _LMBCSData4_3_2
-#define _LMBCSData5 _LMBCSData5_3_2
-#define _LMBCSData6 _LMBCSData6_3_2
-#define _LMBCSData8 _LMBCSData8_3_2
-#define _Latin1Data _Latin1Data_3_2
-#define _MBCSData _MBCSData_3_2
-#define _SCSUData _SCSUData_3_2
-#define _UTF16BEData _UTF16BEData_3_2
-#define _UTF16Data _UTF16Data_3_2
-#define _UTF16LEData _UTF16LEData_3_2
-#define _UTF32BEData _UTF32BEData_3_2
-#define _UTF32Data _UTF32Data_3_2
-#define _UTF32LEData _UTF32LEData_3_2
-#define _UTF7Data _UTF7Data_3_2
-#define _UTF8Data _UTF8Data_3_2
-#define cmemory_cleanup cmemory_cleanup_3_2
-#define cmemory_inUse cmemory_inUse_3_2
-#define locale_getKeywords locale_getKeywords_3_2
-#define locale_get_default locale_get_default_3_2
-#define locale_set_default locale_set_default_3_2
-#define res_countArrayItems res_countArrayItems_3_2
-#define res_findResource res_findResource_3_2
-#define res_getAlias res_getAlias_3_2
-#define res_getArrayItem res_getArrayItem_3_2
-#define res_getBinary res_getBinary_3_2
-#define res_getIntVector res_getIntVector_3_2
-#define res_getResource res_getResource_3_2
-#define res_getString res_getString_3_2
-#define res_getTableItemByIndex res_getTableItemByIndex_3_2
-#define res_getTableItemByKey res_getTableItemByKey_3_2
-#define res_load res_load_3_2
-#define res_unload res_unload_3_2
-#define transliterator_cleanup transliterator_cleanup_3_2
-#define u_UCharsToChars u_UCharsToChars_3_2
-#define u_austrcpy u_austrcpy_3_2
-#define u_austrncpy u_austrncpy_3_2
-#define u_catclose u_catclose_3_2
-#define u_catgets u_catgets_3_2
-#define u_catopen u_catopen_3_2
-#define u_charAge u_charAge_3_2
-#define u_charDigitValue u_charDigitValue_3_2
-#define u_charDirection u_charDirection_3_2
-#define u_charFromName u_charFromName_3_2
-#define u_charMirror u_charMirror_3_2
-#define u_charName u_charName_3_2
-#define u_charType u_charType_3_2
-#define u_charsToUChars u_charsToUChars_3_2
-#define u_cleanup u_cleanup_3_2
-#define u_countChar32 u_countChar32_3_2
-#define u_digit u_digit_3_2
-#define u_enumCharNames u_enumCharNames_3_2
-#define u_enumCharTypes u_enumCharTypes_3_2
-#define u_errorName u_errorName_3_2
-#define u_fclose u_fclose_3_2
-#define u_feof u_feof_3_2
-#define u_fflush u_fflush_3_2
-#define u_fgetConverter u_fgetConverter_3_2
-#define u_fgetc u_fgetc_3_2
-#define u_fgetcodepage u_fgetcodepage_3_2
-#define u_fgetcx u_fgetcx_3_2
-#define u_fgetfile u_fgetfile_3_2
-#define u_fgetlocale u_fgetlocale_3_2
-#define u_fgets u_fgets_3_2
-#define u_file_read u_file_read_3_2
-#define u_file_write u_file_write_3_2
-#define u_file_write_flush u_file_write_flush_3_2
-#define u_finit u_finit_3_2
-#define u_foldCase u_foldCase_3_2
-#define u_fopen u_fopen_3_2
-#define u_forDigit u_forDigit_3_2
-#define u_formatMessage u_formatMessage_3_2
-#define u_formatMessageWithError u_formatMessageWithError_3_2
-#define u_fprintf u_fprintf_3_2
-#define u_fprintf_u u_fprintf_u_3_2
-#define u_fputc u_fputc_3_2
-#define u_fputs u_fputs_3_2
-#define u_frewind u_frewind_3_2
-#define u_fscanf u_fscanf_3_2
-#define u_fscanf_u u_fscanf_u_3_2
-#define u_fsetcodepage u_fsetcodepage_3_2
-#define u_fsetlocale u_fsetlocale_3_2
-#define u_fsettransliterator u_fsettransliterator_3_2
-#define u_fstropen u_fstropen_3_2
-#define u_fungetc u_fungetc_3_2
-#define u_getCombiningClass u_getCombiningClass_3_2
-#define u_getDataDirectory u_getDataDirectory_3_2
-#define u_getDefaultConverter u_getDefaultConverter_3_2
-#define u_getFC_NFKC_Closure u_getFC_NFKC_Closure_3_2
-#define u_getISOComment u_getISOComment_3_2
-#define u_getIntPropertyMaxValue u_getIntPropertyMaxValue_3_2
-#define u_getIntPropertyMinValue u_getIntPropertyMinValue_3_2
-#define u_getIntPropertyValue u_getIntPropertyValue_3_2
-#define u_getNumericValue u_getNumericValue_3_2
-#define u_getPropertyEnum u_getPropertyEnum_3_2
-#define u_getPropertyName u_getPropertyName_3_2
-#define u_getPropertyValueEnum u_getPropertyValueEnum_3_2
-#define u_getPropertyValueName u_getPropertyValueName_3_2
-#define u_getUnicodeProperties u_getUnicodeProperties_3_2
-#define u_getUnicodeVersion u_getUnicodeVersion_3_2
-#define u_getVersion u_getVersion_3_2
-#define u_growBufferFromStatic u_growBufferFromStatic_3_2
-#define u_hasBinaryProperty u_hasBinaryProperty_3_2
-#define u_init u_init_3_2
-#define u_isIDIgnorable u_isIDIgnorable_3_2
-#define u_isIDPart u_isIDPart_3_2
-#define u_isIDStart u_isIDStart_3_2
-#define u_isISOControl u_isISOControl_3_2
-#define u_isJavaIDPart u_isJavaIDPart_3_2
-#define u_isJavaIDStart u_isJavaIDStart_3_2
-#define u_isJavaSpaceChar u_isJavaSpaceChar_3_2
-#define u_isMirrored u_isMirrored_3_2
-#define u_isUAlphabetic u_isUAlphabetic_3_2
-#define u_isULowercase u_isULowercase_3_2
-#define u_isUUppercase u_isUUppercase_3_2
-#define u_isUWhiteSpace u_isUWhiteSpace_3_2
-#define u_isWhitespace u_isWhitespace_3_2
-#define u_isalnum u_isalnum_3_2
-#define u_isalpha u_isalpha_3_2
-#define u_isbase u_isbase_3_2
-#define u_isblank u_isblank_3_2
-#define u_iscntrl u_iscntrl_3_2
-#define u_isdefined u_isdefined_3_2
-#define u_isdigit u_isdigit_3_2
-#define u_isgraph u_isgraph_3_2
-#define u_islower u_islower_3_2
-#define u_isprint u_isprint_3_2
-#define u_ispunct u_ispunct_3_2
-#define u_isspace u_isspace_3_2
-#define u_istitle u_istitle_3_2
-#define u_isupper u_isupper_3_2
-#define u_isxdigit u_isxdigit_3_2
-#define u_lengthOfIdenticalLevelRun u_lengthOfIdenticalLevelRun_3_2
-#define u_locbund_close u_locbund_close_3_2
-#define u_locbund_getNumberFormat u_locbund_getNumberFormat_3_2
-#define u_locbund_init u_locbund_init_3_2
-#define u_memcasecmp u_memcasecmp_3_2
-#define u_memchr u_memchr_3_2
-#define u_memchr32 u_memchr32_3_2
-#define u_memcmp u_memcmp_3_2
-#define u_memcmpCodePointOrder u_memcmpCodePointOrder_3_2
-#define u_memcpy u_memcpy_3_2
-#define u_memmove u_memmove_3_2
-#define u_memrchr u_memrchr_3_2
-#define u_memrchr32 u_memrchr32_3_2
-#define u_memset u_memset_3_2
-#define u_parseMessage u_parseMessage_3_2
-#define u_parseMessageWithError u_parseMessageWithError_3_2
-#define u_printf_parse u_printf_parse_3_2
-#define u_releaseDefaultConverter u_releaseDefaultConverter_3_2
-#define u_scanf_parse u_scanf_parse_3_2
-#define u_setAtomicIncDecFunctions u_setAtomicIncDecFunctions_3_2
-#define u_setDataDirectory u_setDataDirectory_3_2
-#define u_setMemoryFunctions u_setMemoryFunctions_3_2
-#define u_setMutexFunctions u_setMutexFunctions_3_2
-#define u_shapeArabic u_shapeArabic_3_2
-#define u_snprintf u_snprintf_3_2
-#define u_snprintf_u u_snprintf_u_3_2
-#define u_sprintf u_sprintf_3_2
-#define u_sprintf_u u_sprintf_u_3_2
-#define u_sscanf u_sscanf_3_2
-#define u_sscanf_u u_sscanf_u_3_2
-#define u_strCaseCompare u_strCaseCompare_3_2
-#define u_strCompare u_strCompare_3_2
-#define u_strCompareIter u_strCompareIter_3_2
-#define u_strFindFirst u_strFindFirst_3_2
-#define u_strFindLast u_strFindLast_3_2
-#define u_strFoldCase u_strFoldCase_3_2
-#define u_strFromPunycode u_strFromPunycode_3_2
-#define u_strFromUTF32 u_strFromUTF32_3_2
-#define u_strFromUTF8 u_strFromUTF8_3_2
-#define u_strFromWCS u_strFromWCS_3_2
-#define u_strHasMoreChar32Than u_strHasMoreChar32Than_3_2
-#define u_strToLower u_strToLower_3_2
-#define u_strToPunycode u_strToPunycode_3_2
-#define u_strToTitle u_strToTitle_3_2
-#define u_strToUTF32 u_strToUTF32_3_2
-#define u_strToUTF8 u_strToUTF8_3_2
-#define u_strToUpper u_strToUpper_3_2
-#define u_strToWCS u_strToWCS_3_2
-#define u_strcasecmp u_strcasecmp_3_2
-#define u_strcat u_strcat_3_2
-#define u_strchr u_strchr_3_2
-#define u_strchr32 u_strchr32_3_2
-#define u_strcmp u_strcmp_3_2
-#define u_strcmpCodePointOrder u_strcmpCodePointOrder_3_2
-#define u_strcmpFold u_strcmpFold_3_2
-#define u_strcpy u_strcpy_3_2
-#define u_strcspn u_strcspn_3_2
-#define u_strlen u_strlen_3_2
-#define u_strncasecmp u_strncasecmp_3_2
-#define u_strncat u_strncat_3_2
-#define u_strncmp u_strncmp_3_2
-#define u_strncmpCodePointOrder u_strncmpCodePointOrder_3_2
-#define u_strncpy u_strncpy_3_2
-#define u_strpbrk u_strpbrk_3_2
-#define u_strrchr u_strrchr_3_2
-#define u_strrchr32 u_strrchr32_3_2
-#define u_strrstr u_strrstr_3_2
-#define u_strspn u_strspn_3_2
-#define u_strstr u_strstr_3_2
-#define u_strtok_r u_strtok_r_3_2
-#define u_terminateChars u_terminateChars_3_2
-#define u_terminateUChar32s u_terminateUChar32s_3_2
-#define u_terminateUChars u_terminateUChars_3_2
-#define u_terminateWChars u_terminateWChars_3_2
-#define u_tolower u_tolower_3_2
-#define u_totitle u_totitle_3_2
-#define u_toupper u_toupper_3_2
-#define u_uastrcpy u_uastrcpy_3_2
-#define u_uastrncpy u_uastrncpy_3_2
-#define u_unescape u_unescape_3_2
-#define u_unescapeAt u_unescapeAt_3_2
-#define u_versionFromString u_versionFromString_3_2
-#define u_versionToString u_versionToString_3_2
-#define u_vformatMessage u_vformatMessage_3_2
-#define u_vformatMessageWithError u_vformatMessageWithError_3_2
-#define u_vfprintf u_vfprintf_3_2
-#define u_vfprintf_u u_vfprintf_u_3_2
-#define u_vfscanf u_vfscanf_3_2
-#define u_vfscanf_u u_vfscanf_u_3_2
-#define u_vparseMessage u_vparseMessage_3_2
-#define u_vparseMessageWithError u_vparseMessageWithError_3_2
-#define u_vsnprintf u_vsnprintf_3_2
-#define u_vsnprintf_u u_vsnprintf_u_3_2
-#define u_vsprintf u_vsprintf_3_2
-#define u_vsprintf_u u_vsprintf_u_3_2
-#define u_vsscanf u_vsscanf_3_2
-#define u_vsscanf_u u_vsscanf_u_3_2
-#define u_writeDiff u_writeDiff_3_2
-#define u_writeIdenticalLevelRun u_writeIdenticalLevelRun_3_2
-#define u_writeIdenticalLevelRunTwoChars u_writeIdenticalLevelRunTwoChars_3_2
-#define ubidi_close ubidi_close_3_2
-#define ubidi_countRuns ubidi_countRuns_3_2
-#define ubidi_getDirection ubidi_getDirection_3_2
-#define ubidi_getLength ubidi_getLength_3_2
-#define ubidi_getLevelAt ubidi_getLevelAt_3_2
-#define ubidi_getLevels ubidi_getLevels_3_2
-#define ubidi_getLogicalIndex ubidi_getLogicalIndex_3_2
-#define ubidi_getLogicalMap ubidi_getLogicalMap_3_2
-#define ubidi_getLogicalRun ubidi_getLogicalRun_3_2
-#define ubidi_getMemory ubidi_getMemory_3_2
-#define ubidi_getParaLevel ubidi_getParaLevel_3_2
-#define ubidi_getRuns ubidi_getRuns_3_2
-#define ubidi_getText ubidi_getText_3_2
-#define ubidi_getVisualIndex ubidi_getVisualIndex_3_2
-#define ubidi_getVisualMap ubidi_getVisualMap_3_2
-#define ubidi_getVisualRun ubidi_getVisualRun_3_2
-#define ubidi_invertMap ubidi_invertMap_3_2
-#define ubidi_isInverse ubidi_isInverse_3_2
-#define ubidi_open ubidi_open_3_2
-#define ubidi_openSized ubidi_openSized_3_2
-#define ubidi_reorderLogical ubidi_reorderLogical_3_2
-#define ubidi_reorderVisual ubidi_reorderVisual_3_2
-#define ubidi_setInverse ubidi_setInverse_3_2
-#define ubidi_setLine ubidi_setLine_3_2
-#define ubidi_setPara ubidi_setPara_3_2
-#define ubidi_writeReordered ubidi_writeReordered_3_2
-#define ubidi_writeReverse ubidi_writeReverse_3_2
-#define ublock_getCode ublock_getCode_3_2
-#define ubrk_close ubrk_close_3_2
-#define ubrk_countAvailable ubrk_countAvailable_3_2
-#define ubrk_current ubrk_current_3_2
-#define ubrk_first ubrk_first_3_2
-#define ubrk_following ubrk_following_3_2
-#define ubrk_getAvailable ubrk_getAvailable_3_2
-#define ubrk_getLocaleByType ubrk_getLocaleByType_3_2
-#define ubrk_getRuleStatus ubrk_getRuleStatus_3_2
-#define ubrk_getRuleStatusVec ubrk_getRuleStatusVec_3_2
-#define ubrk_isBoundary ubrk_isBoundary_3_2
-#define ubrk_last ubrk_last_3_2
-#define ubrk_next ubrk_next_3_2
-#define ubrk_open ubrk_open_3_2
-#define ubrk_openRules ubrk_openRules_3_2
-#define ubrk_preceding ubrk_preceding_3_2
-#define ubrk_previous ubrk_previous_3_2
-#define ubrk_safeClone ubrk_safeClone_3_2
-#define ubrk_setText ubrk_setText_3_2
-#define ubrk_swap ubrk_swap_3_2
-#define ucal_add ucal_add_3_2
-#define ucal_clear ucal_clear_3_2
-#define ucal_clearField ucal_clearField_3_2
-#define ucal_close ucal_close_3_2
-#define ucal_countAvailable ucal_countAvailable_3_2
-#define ucal_equivalentTo ucal_equivalentTo_3_2
-#define ucal_get ucal_get_3_2
-#define ucal_getAttribute ucal_getAttribute_3_2
-#define ucal_getAvailable ucal_getAvailable_3_2
-#define ucal_getDSTSavings ucal_getDSTSavings_3_2
-#define ucal_getDefaultTimeZone ucal_getDefaultTimeZone_3_2
-#define ucal_getLimit ucal_getLimit_3_2
-#define ucal_getLocaleByType ucal_getLocaleByType_3_2
-#define ucal_getMillis ucal_getMillis_3_2
-#define ucal_getNow ucal_getNow_3_2
-#define ucal_getTimeZoneDisplayName ucal_getTimeZoneDisplayName_3_2
-#define ucal_inDaylightTime ucal_inDaylightTime_3_2
-#define ucal_isSet ucal_isSet_3_2
-#define ucal_open ucal_open_3_2
-#define ucal_openCountryTimeZones ucal_openCountryTimeZones_3_2
-#define ucal_openTimeZones ucal_openTimeZones_3_2
-#define ucal_roll ucal_roll_3_2
-#define ucal_set ucal_set_3_2
-#define ucal_setAttribute ucal_setAttribute_3_2
-#define ucal_setDate ucal_setDate_3_2
-#define ucal_setDateTime ucal_setDateTime_3_2
-#define ucal_setDefaultTimeZone ucal_setDefaultTimeZone_3_2
-#define ucal_setMillis ucal_setMillis_3_2
-#define ucal_setTimeZone ucal_setTimeZone_3_2
-#define ucase_addPropertyStarts ucase_addPropertyStarts_3_2
-#define ucase_close ucase_close_3_2
-#define ucase_fold ucase_fold_3_2
-#define ucase_getSingleton ucase_getSingleton_3_2
-#define ucase_getType ucase_getType_3_2
-#define ucase_getTypeOrIgnorable ucase_getTypeOrIgnorable_3_2
-#define ucase_isCaseSensitive ucase_isCaseSensitive_3_2
-#define ucase_isSoftDotted ucase_isSoftDotted_3_2
-#define ucase_open ucase_open_3_2
-#define ucase_openBinary ucase_openBinary_3_2
-#define ucase_swap ucase_swap_3_2
-#define ucase_toFullFolding ucase_toFullFolding_3_2
-#define ucase_toFullLower ucase_toFullLower_3_2
-#define ucase_toFullTitle ucase_toFullTitle_3_2
-#define ucase_toFullUpper ucase_toFullUpper_3_2
-#define ucase_tolower ucase_tolower_3_2
-#define ucase_totitle ucase_totitle_3_2
-#define ucase_toupper ucase_toupper_3_2
-#define uchar_addPropertyStarts uchar_addPropertyStarts_3_2
-#define uchar_getHST uchar_getHST_3_2
-#define uchar_swapNames uchar_swapNames_3_2
-#define ucln_common_lib_cleanup ucln_common_lib_cleanup_3_2
-#define ucln_common_registerCleanup ucln_common_registerCleanup_3_2
-#define ucln_i18n_registerCleanup ucln_i18n_registerCleanup_3_2
-#define ucln_registerCleanup ucln_registerCleanup_3_2
-#define ucmp8_close ucmp8_close_3_2
-#define ucmp8_compact ucmp8_compact_3_2
-#define ucmp8_expand ucmp8_expand_3_2
-#define ucmp8_flattenMem ucmp8_flattenMem_3_2
-#define ucmp8_getArray ucmp8_getArray_3_2
-#define ucmp8_getCount ucmp8_getCount_3_2
-#define ucmp8_getIndex ucmp8_getIndex_3_2
-#define ucmp8_getkBlockCount ucmp8_getkBlockCount_3_2
-#define ucmp8_getkUnicodeCount ucmp8_getkUnicodeCount_3_2
-#define ucmp8_init ucmp8_init_3_2
-#define ucmp8_initAdopt ucmp8_initAdopt_3_2
-#define ucmp8_initAlias ucmp8_initAlias_3_2
-#define ucmp8_initBogus ucmp8_initBogus_3_2
-#define ucmp8_initFromData ucmp8_initFromData_3_2
-#define ucmp8_isBogus ucmp8_isBogus_3_2
-#define ucmp8_open ucmp8_open_3_2
-#define ucmp8_openAdopt ucmp8_openAdopt_3_2
-#define ucmp8_openAlias ucmp8_openAlias_3_2
-#define ucmp8_set ucmp8_set_3_2
-#define ucmp8_setRange ucmp8_setRange_3_2
-#define ucnv_MBCSFromUChar32 ucnv_MBCSFromUChar32_3_2
-#define ucnv_MBCSFromUnicodeWithOffsets ucnv_MBCSFromUnicodeWithOffsets_3_2
-#define ucnv_MBCSGetType ucnv_MBCSGetType_3_2
-#define ucnv_MBCSGetUnicodeSetForBytes ucnv_MBCSGetUnicodeSetForBytes_3_2
-#define ucnv_MBCSGetUnicodeSetForUnicode ucnv_MBCSGetUnicodeSetForUnicode_3_2
-#define ucnv_MBCSIsLeadByte ucnv_MBCSIsLeadByte_3_2
-#define ucnv_MBCSSimpleGetNextUChar ucnv_MBCSSimpleGetNextUChar_3_2
-#define ucnv_MBCSToUnicodeWithOffsets ucnv_MBCSToUnicodeWithOffsets_3_2
-#define ucnv_cbFromUWriteBytes ucnv_cbFromUWriteBytes_3_2
-#define ucnv_cbFromUWriteSub ucnv_cbFromUWriteSub_3_2
-#define ucnv_cbFromUWriteUChars ucnv_cbFromUWriteUChars_3_2
-#define ucnv_cbToUWriteSub ucnv_cbToUWriteSub_3_2
-#define ucnv_cbToUWriteUChars ucnv_cbToUWriteUChars_3_2
-#define ucnv_close ucnv_close_3_2
-#define ucnv_compareNames ucnv_compareNames_3_2
-#define ucnv_convert ucnv_convert_3_2
-#define ucnv_convertEx ucnv_convertEx_3_2
-#define ucnv_copyPlatformString ucnv_copyPlatformString_3_2
-#define ucnv_countAliases ucnv_countAliases_3_2
-#define ucnv_countAvailable ucnv_countAvailable_3_2
-#define ucnv_countStandards ucnv_countStandards_3_2
-#define ucnv_createAlgorithmicConverter ucnv_createAlgorithmicConverter_3_2
-#define ucnv_createConverter ucnv_createConverter_3_2
-#define ucnv_createConverterFromPackage ucnv_createConverterFromPackage_3_2
-#define ucnv_createConverterFromSharedData ucnv_createConverterFromSharedData_3_2
-#define ucnv_detectUnicodeSignature ucnv_detectUnicodeSignature_3_2
-#define ucnv_extContinueMatchFromU ucnv_extContinueMatchFromU_3_2
-#define ucnv_extContinueMatchToU ucnv_extContinueMatchToU_3_2
-#define ucnv_extGetUnicodeSet ucnv_extGetUnicodeSet_3_2
-#define ucnv_extInitialMatchFromU ucnv_extInitialMatchFromU_3_2
-#define ucnv_extInitialMatchToU ucnv_extInitialMatchToU_3_2
-#define ucnv_extSimpleMatchFromU ucnv_extSimpleMatchFromU_3_2
-#define ucnv_extSimpleMatchToU ucnv_extSimpleMatchToU_3_2
-#define ucnv_fixFileSeparator ucnv_fixFileSeparator_3_2
-#define ucnv_flushCache ucnv_flushCache_3_2
-#define ucnv_fromAlgorithmic ucnv_fromAlgorithmic_3_2
-#define ucnv_fromUChars ucnv_fromUChars_3_2
-#define ucnv_fromUWriteBytes ucnv_fromUWriteBytes_3_2
-#define ucnv_fromUnicode ucnv_fromUnicode_3_2
-#define ucnv_fromUnicode_UTF8 ucnv_fromUnicode_UTF8_3_2
-#define ucnv_fromUnicode_UTF8_OFFSETS_LOGIC ucnv_fromUnicode_UTF8_OFFSETS_LOGIC_3_2
-#define ucnv_getAlias ucnv_getAlias_3_2
-#define ucnv_getAliases ucnv_getAliases_3_2
-#define ucnv_getAvailableName ucnv_getAvailableName_3_2
-#define ucnv_getCCSID ucnv_getCCSID_3_2
-#define ucnv_getCanonicalName ucnv_getCanonicalName_3_2
-#define ucnv_getCompleteUnicodeSet ucnv_getCompleteUnicodeSet_3_2
-#define ucnv_getDefaultName ucnv_getDefaultName_3_2
-#define ucnv_getDisplayName ucnv_getDisplayName_3_2
-#define ucnv_getFromUCallBack ucnv_getFromUCallBack_3_2
-#define ucnv_getInvalidChars ucnv_getInvalidChars_3_2
-#define ucnv_getInvalidUChars ucnv_getInvalidUChars_3_2
-#define ucnv_getMaxCharSize ucnv_getMaxCharSize_3_2
-#define ucnv_getMinCharSize ucnv_getMinCharSize_3_2
-#define ucnv_getName ucnv_getName_3_2
-#define ucnv_getNextUChar ucnv_getNextUChar_3_2
-#define ucnv_getNonSurrogateUnicodeSet ucnv_getNonSurrogateUnicodeSet_3_2
-#define ucnv_getPlatform ucnv_getPlatform_3_2
-#define ucnv_getStandard ucnv_getStandard_3_2
-#define ucnv_getStandardName ucnv_getStandardName_3_2
-#define ucnv_getStarters ucnv_getStarters_3_2
-#define ucnv_getSubstChars ucnv_getSubstChars_3_2
-#define ucnv_getToUCallBack ucnv_getToUCallBack_3_2
-#define ucnv_getType ucnv_getType_3_2
-#define ucnv_getUnicodeSet ucnv_getUnicodeSet_3_2
-#define ucnv_incrementRefCount ucnv_incrementRefCount_3_2
-#define ucnv_io_countAliases ucnv_io_countAliases_3_2
-#define ucnv_io_countAvailableAliases ucnv_io_countAvailableAliases_3_2
-#define ucnv_io_countAvailableConverters ucnv_io_countAvailableConverters_3_2
-#define ucnv_io_countStandards ucnv_io_countStandards_3_2
-#define ucnv_io_flushAvailableConverterCache ucnv_io_flushAvailableConverterCache_3_2
-#define ucnv_io_getAlias ucnv_io_getAlias_3_2
-#define ucnv_io_getAliases ucnv_io_getAliases_3_2
-#define ucnv_io_getAvailableConverter ucnv_io_getAvailableConverter_3_2
-#define ucnv_io_getConverterName ucnv_io_getConverterName_3_2
-#define ucnv_io_getDefaultConverterName ucnv_io_getDefaultConverterName_3_2
-#define ucnv_io_setDefaultConverterName ucnv_io_setDefaultConverterName_3_2
-#define ucnv_io_stripASCIIForCompare ucnv_io_stripASCIIForCompare_3_2
-#define ucnv_io_stripEBCDICForCompare ucnv_io_stripEBCDICForCompare_3_2
-#define ucnv_isAmbiguous ucnv_isAmbiguous_3_2
-#define ucnv_load ucnv_load_3_2
-#define ucnv_loadSharedData ucnv_loadSharedData_3_2
-#define ucnv_open ucnv_open_3_2
-#define ucnv_openAllNames ucnv_openAllNames_3_2
-#define ucnv_openCCSID ucnv_openCCSID_3_2
-#define ucnv_openPackage ucnv_openPackage_3_2
-#define ucnv_openStandardNames ucnv_openStandardNames_3_2
-#define ucnv_openU ucnv_openU_3_2
-#define ucnv_reset ucnv_reset_3_2
-#define ucnv_resetFromUnicode ucnv_resetFromUnicode_3_2
-#define ucnv_resetToUnicode ucnv_resetToUnicode_3_2
-#define ucnv_safeClone ucnv_safeClone_3_2
-#define ucnv_setDefaultName ucnv_setDefaultName_3_2
-#define ucnv_setFallback ucnv_setFallback_3_2
-#define ucnv_setFromUCallBack ucnv_setFromUCallBack_3_2
-#define ucnv_setSubstChars ucnv_setSubstChars_3_2
-#define ucnv_setToUCallBack ucnv_setToUCallBack_3_2
-#define ucnv_swap ucnv_swap_3_2
-#define ucnv_swapAliases ucnv_swapAliases_3_2
-#define ucnv_toAlgorithmic ucnv_toAlgorithmic_3_2
-#define ucnv_toUChars ucnv_toUChars_3_2
-#define ucnv_toUWriteCodePoint ucnv_toUWriteCodePoint_3_2
-#define ucnv_toUWriteUChars ucnv_toUWriteUChars_3_2
-#define ucnv_toUnicode ucnv_toUnicode_3_2
-#define ucnv_unload ucnv_unload_3_2
-#define ucnv_unloadSharedDataIfReady ucnv_unloadSharedDataIfReady_3_2
-#define ucnv_usesFallback ucnv_usesFallback_3_2
-#define ucol_allocWeights ucol_allocWeights_3_2
-#define ucol_assembleTailoringTable ucol_assembleTailoringTable_3_2
-#define ucol_calcSortKey ucol_calcSortKey_3_2
-#define ucol_calcSortKeySimpleTertiary ucol_calcSortKeySimpleTertiary_3_2
-#define ucol_cloneBinary ucol_cloneBinary_3_2
-#define ucol_cloneRuleData ucol_cloneRuleData_3_2
-#define ucol_close ucol_close_3_2
-#define ucol_closeElements ucol_closeElements_3_2
-#define ucol_collatorToIdentifier ucol_collatorToIdentifier_3_2
-#define ucol_countAvailable ucol_countAvailable_3_2
-#define ucol_createElements ucol_createElements_3_2
-#define ucol_doCE ucol_doCE_3_2
-#define ucol_equal ucol_equal_3_2
-#define ucol_equals ucol_equals_3_2
-#define ucol_getAttribute ucol_getAttribute_3_2
-#define ucol_getAttributeOrDefault ucol_getAttributeOrDefault_3_2
-#define ucol_getAvailable ucol_getAvailable_3_2
-#define ucol_getBound ucol_getBound_3_2
-#define ucol_getCEGenerator ucol_getCEGenerator_3_2
-#define ucol_getCEStrengthDifference ucol_getCEStrengthDifference_3_2
-#define ucol_getContractions ucol_getContractions_3_2
-#define ucol_getDisplayName ucol_getDisplayName_3_2
-#define ucol_getFirstCE ucol_getFirstCE_3_2
-#define ucol_getFunctionalEquivalent ucol_getFunctionalEquivalent_3_2
-#define ucol_getKeywordValues ucol_getKeywordValues_3_2
-#define ucol_getKeywords ucol_getKeywords_3_2
-#define ucol_getLocale ucol_getLocale_3_2
-#define ucol_getLocaleByType ucol_getLocaleByType_3_2
-#define ucol_getMaxExpansion ucol_getMaxExpansion_3_2
-#define ucol_getNextCE ucol_getNextCE_3_2
-#define ucol_getNextGenerated ucol_getNextGenerated_3_2
-#define ucol_getOffset ucol_getOffset_3_2
-#define ucol_getPrevCE ucol_getPrevCE_3_2
-#define ucol_getRules ucol_getRules_3_2
-#define ucol_getRulesEx ucol_getRulesEx_3_2
-#define ucol_getShortDefinitionString ucol_getShortDefinitionString_3_2
-#define ucol_getSimpleCEGenerator ucol_getSimpleCEGenerator_3_2
-#define ucol_getSortKey ucol_getSortKey_3_2
-#define ucol_getSortKeySize ucol_getSortKeySize_3_2
-#define ucol_getSortKeyWithAllocation ucol_getSortKeyWithAllocation_3_2
-#define ucol_getStrength ucol_getStrength_3_2
-#define ucol_getTailoredSet ucol_getTailoredSet_3_2
-#define ucol_getUCAVersion ucol_getUCAVersion_3_2
-#define ucol_getUnsafeSet ucol_getUnsafeSet_3_2
-#define ucol_getVariableTop ucol_getVariableTop_3_2
-#define ucol_getVersion ucol_getVersion_3_2
-#define ucol_greater ucol_greater_3_2
-#define ucol_greaterOrEqual ucol_greaterOrEqual_3_2
-#define ucol_identifierToShortString ucol_identifierToShortString_3_2
-#define ucol_initBuffers ucol_initBuffers_3_2
-#define ucol_initCollator ucol_initCollator_3_2
-#define ucol_initInverseUCA ucol_initInverseUCA_3_2
-#define ucol_initUCA ucol_initUCA_3_2
-#define ucol_inv_getGapPositions ucol_inv_getGapPositions_3_2
-#define ucol_inv_getNextCE ucol_inv_getNextCE_3_2
-#define ucol_inv_getPrevCE ucol_inv_getPrevCE_3_2
-#define ucol_isTailored ucol_isTailored_3_2
-#define ucol_keyHashCode ucol_keyHashCode_3_2
-#define ucol_mergeSortkeys ucol_mergeSortkeys_3_2
-#define ucol_next ucol_next_3_2
-#define ucol_nextSortKeyPart ucol_nextSortKeyPart_3_2
-#define ucol_nextWeight ucol_nextWeight_3_2
-#define ucol_normalizeShortDefinitionString ucol_normalizeShortDefinitionString_3_2
-#define ucol_open ucol_open_3_2
-#define ucol_openAvailableLocales ucol_openAvailableLocales_3_2
-#define ucol_openBinary ucol_openBinary_3_2
-#define ucol_openElements ucol_openElements_3_2
-#define ucol_openFromIdentifier ucol_openFromIdentifier_3_2
-#define ucol_openFromShortString ucol_openFromShortString_3_2
-#define ucol_openRules ucol_openRules_3_2
-#define ucol_open_internal ucol_open_internal_3_2
-#define ucol_previous ucol_previous_3_2
-#define ucol_primaryOrder ucol_primaryOrder_3_2
-#define ucol_prv_getSpecialCE ucol_prv_getSpecialCE_3_2
-#define ucol_prv_getSpecialPrevCE ucol_prv_getSpecialPrevCE_3_2
-#define ucol_reset ucol_reset_3_2
-#define ucol_restoreVariableTop ucol_restoreVariableTop_3_2
-#define ucol_safeClone ucol_safeClone_3_2
-#define ucol_secondaryOrder ucol_secondaryOrder_3_2
-#define ucol_setAttribute ucol_setAttribute_3_2
-#define ucol_setOffset ucol_setOffset_3_2
-#define ucol_setOptionsFromHeader ucol_setOptionsFromHeader_3_2
-#define ucol_setReqValidLocales ucol_setReqValidLocales_3_2
-#define ucol_setStrength ucol_setStrength_3_2
-#define ucol_setText ucol_setText_3_2
-#define ucol_setVariableTop ucol_setVariableTop_3_2
-#define ucol_shortStringToIdentifier ucol_shortStringToIdentifier_3_2
-#define ucol_sortKeyToString ucol_sortKeyToString_3_2
-#define ucol_strcoll ucol_strcoll_3_2
-#define ucol_strcollIter ucol_strcollIter_3_2
-#define ucol_swap ucol_swap_3_2
-#define ucol_swapBinary ucol_swapBinary_3_2
-#define ucol_swapInverseUCA ucol_swapInverseUCA_3_2
-#define ucol_tertiaryOrder ucol_tertiaryOrder_3_2
-#define ucol_tok_assembleTokenList ucol_tok_assembleTokenList_3_2
-#define ucol_tok_closeTokenList ucol_tok_closeTokenList_3_2
-#define ucol_tok_getNextArgument ucol_tok_getNextArgument_3_2
-#define ucol_tok_initTokenList ucol_tok_initTokenList_3_2
-#define ucol_tok_parseNextToken ucol_tok_parseNextToken_3_2
-#define ucol_updateInternalState ucol_updateInternalState_3_2
-#define ucurr_forLocale ucurr_forLocale_3_2
-#define ucurr_getDefaultFractionDigits ucurr_getDefaultFractionDigits_3_2
-#define ucurr_getName ucurr_getName_3_2
-#define ucurr_getRoundingIncrement ucurr_getRoundingIncrement_3_2
-#define ucurr_register ucurr_register_3_2
-#define ucurr_unregister ucurr_unregister_3_2
-#define udat_applyPattern udat_applyPattern_3_2
-#define udat_clone udat_clone_3_2
-#define udat_close udat_close_3_2
-#define udat_countAvailable udat_countAvailable_3_2
-#define udat_countSymbols udat_countSymbols_3_2
-#define udat_format udat_format_3_2
-#define udat_get2DigitYearStart udat_get2DigitYearStart_3_2
-#define udat_getAvailable udat_getAvailable_3_2
-#define udat_getCalendar udat_getCalendar_3_2
-#define udat_getLocaleByType udat_getLocaleByType_3_2
-#define udat_getNumberFormat udat_getNumberFormat_3_2
-#define udat_getSymbols udat_getSymbols_3_2
-#define udat_isLenient udat_isLenient_3_2
-#define udat_open udat_open_3_2
-#define udat_parse udat_parse_3_2
-#define udat_parseCalendar udat_parseCalendar_3_2
-#define udat_set2DigitYearStart udat_set2DigitYearStart_3_2
-#define udat_setCalendar udat_setCalendar_3_2
-#define udat_setLenient udat_setLenient_3_2
-#define udat_setNumberFormat udat_setNumberFormat_3_2
-#define udat_setSymbols udat_setSymbols_3_2
-#define udat_toPattern udat_toPattern_3_2
-#define udata_checkCommonData udata_checkCommonData_3_2
-#define udata_close udata_close_3_2
-#define udata_closeSwapper udata_closeSwapper_3_2
-#define udata_getHeaderSize udata_getHeaderSize_3_2
-#define udata_getInfo udata_getInfo_3_2
-#define udata_getInfoSize udata_getInfoSize_3_2
-#define udata_getLength udata_getLength_3_2
-#define udata_getMemory udata_getMemory_3_2
-#define udata_getRawMemory udata_getRawMemory_3_2
-#define udata_open udata_open_3_2
-#define udata_openChoice udata_openChoice_3_2
-#define udata_openSwapper udata_openSwapper_3_2
-#define udata_openSwapperForInputData udata_openSwapperForInputData_3_2
-#define udata_printError udata_printError_3_2
-#define udata_readInt16 udata_readInt16_3_2
-#define udata_readInt32 udata_readInt32_3_2
-#define udata_setAppData udata_setAppData_3_2
-#define udata_setCommonData udata_setCommonData_3_2
-#define udata_swapDataHeader udata_swapDataHeader_3_2
-#define udata_swapInvStringBlock udata_swapInvStringBlock_3_2
-#define uenum_close uenum_close_3_2
-#define uenum_count uenum_count_3_2
-#define uenum_next uenum_next_3_2
-#define uenum_nextDefault uenum_nextDefault_3_2
-#define uenum_openCharStringsEnumeration uenum_openCharStringsEnumeration_3_2
-#define uenum_openStringEnumeration uenum_openStringEnumeration_3_2
-#define uenum_reset uenum_reset_3_2
-#define uenum_unext uenum_unext_3_2
-#define uenum_unextDefault uenum_unextDefault_3_2
-#define ufile_close_translit ufile_close_translit_3_2
-#define ufile_fill_uchar_buffer ufile_fill_uchar_buffer_3_2
-#define ufile_flush_translit ufile_flush_translit_3_2
-#define ufile_getch ufile_getch_3_2
-#define ufile_getch32 ufile_getch32_3_2
-#define ufmt_64tou ufmt_64tou_3_2
-#define ufmt_defaultCPToUnicode ufmt_defaultCPToUnicode_3_2
-#define ufmt_digitvalue ufmt_digitvalue_3_2
-#define ufmt_isdigit ufmt_isdigit_3_2
-#define ufmt_ptou ufmt_ptou_3_2
-#define ufmt_uto64 ufmt_uto64_3_2
-#define ufmt_utop ufmt_utop_3_2
-#define uhash_close uhash_close_3_2
-#define uhash_compareCaselessUnicodeString uhash_compareCaselessUnicodeString_3_2
-#define uhash_compareChars uhash_compareChars_3_2
-#define uhash_compareIChars uhash_compareIChars_3_2
-#define uhash_compareLong uhash_compareLong_3_2
-#define uhash_compareUChars uhash_compareUChars_3_2
-#define uhash_compareUnicodeString uhash_compareUnicodeString_3_2
-#define uhash_count uhash_count_3_2
-#define uhash_deleteHashtable uhash_deleteHashtable_3_2
-#define uhash_deleteUVector uhash_deleteUVector_3_2
-#define uhash_deleteUnicodeString uhash_deleteUnicodeString_3_2
-#define uhash_find uhash_find_3_2
-#define uhash_freeBlock uhash_freeBlock_3_2
-#define uhash_get uhash_get_3_2
-#define uhash_geti uhash_geti_3_2
-#define uhash_hashCaselessUnicodeString uhash_hashCaselessUnicodeString_3_2
-#define uhash_hashChars uhash_hashChars_3_2
-#define uhash_hashIChars uhash_hashIChars_3_2
-#define uhash_hashLong uhash_hashLong_3_2
-#define uhash_hashUChars uhash_hashUChars_3_2
-#define uhash_hashUCharsN uhash_hashUCharsN_3_2
-#define uhash_hashUnicodeString uhash_hashUnicodeString_3_2
-#define uhash_iget uhash_iget_3_2
-#define uhash_igeti uhash_igeti_3_2
-#define uhash_iput uhash_iput_3_2
-#define uhash_iputi uhash_iputi_3_2
-#define uhash_iremove uhash_iremove_3_2
-#define uhash_iremovei uhash_iremovei_3_2
-#define uhash_nextElement uhash_nextElement_3_2
-#define uhash_open uhash_open_3_2
-#define uhash_openSize uhash_openSize_3_2
-#define uhash_put uhash_put_3_2
-#define uhash_puti uhash_puti_3_2
-#define uhash_remove uhash_remove_3_2
-#define uhash_removeAll uhash_removeAll_3_2
-#define uhash_removeElement uhash_removeElement_3_2
-#define uhash_removei uhash_removei_3_2
-#define uhash_setKeyComparator uhash_setKeyComparator_3_2
-#define uhash_setKeyDeleter uhash_setKeyDeleter_3_2
-#define uhash_setKeyHasher uhash_setKeyHasher_3_2
-#define uhash_setResizePolicy uhash_setResizePolicy_3_2
-#define uhash_setValueDeleter uhash_setValueDeleter_3_2
-#define uhash_toki uhash_toki_3_2
-#define uhash_tokp uhash_tokp_3_2
-#define uhst_addPropertyStarts uhst_addPropertyStarts_3_2
-#define uidna_IDNToASCII uidna_IDNToASCII_3_2
-#define uidna_IDNToUnicode uidna_IDNToUnicode_3_2
-#define uidna_compare uidna_compare_3_2
-#define uidna_toASCII uidna_toASCII_3_2
-#define uidna_toUnicode uidna_toUnicode_3_2
-#define uiter_current32 uiter_current32_3_2
-#define uiter_getState uiter_getState_3_2
-#define uiter_next32 uiter_next32_3_2
-#define uiter_previous32 uiter_previous32_3_2
-#define uiter_setCharacterIterator uiter_setCharacterIterator_3_2
-#define uiter_setReplaceable uiter_setReplaceable_3_2
-#define uiter_setState uiter_setState_3_2
-#define uiter_setString uiter_setString_3_2
-#define uiter_setUTF16BE uiter_setUTF16BE_3_2
-#define uiter_setUTF8 uiter_setUTF8_3_2
-#define uloc_acceptLanguage uloc_acceptLanguage_3_2
-#define uloc_acceptLanguageFromHTTP uloc_acceptLanguageFromHTTP_3_2
-#define uloc_canonicalize uloc_canonicalize_3_2
-#define uloc_countAvailable uloc_countAvailable_3_2
-#define uloc_getAvailable uloc_getAvailable_3_2
-#define uloc_getBaseName uloc_getBaseName_3_2
-#define uloc_getCountry uloc_getCountry_3_2
-#define uloc_getDefault uloc_getDefault_3_2
-#define uloc_getDisplayCountry uloc_getDisplayCountry_3_2
-#define uloc_getDisplayKeyword uloc_getDisplayKeyword_3_2
-#define uloc_getDisplayKeywordValue uloc_getDisplayKeywordValue_3_2
-#define uloc_getDisplayLanguage uloc_getDisplayLanguage_3_2
-#define uloc_getDisplayName uloc_getDisplayName_3_2
-#define uloc_getDisplayScript uloc_getDisplayScript_3_2
-#define uloc_getDisplayVariant uloc_getDisplayVariant_3_2
-#define uloc_getISO3Country uloc_getISO3Country_3_2
-#define uloc_getISO3Language uloc_getISO3Language_3_2
-#define uloc_getISOCountries uloc_getISOCountries_3_2
-#define uloc_getISOLanguages uloc_getISOLanguages_3_2
-#define uloc_getKeywordValue uloc_getKeywordValue_3_2
-#define uloc_getLCID uloc_getLCID_3_2
-#define uloc_getLanguage uloc_getLanguage_3_2
-#define uloc_getName uloc_getName_3_2
-#define uloc_getParent uloc_getParent_3_2
-#define uloc_getScript uloc_getScript_3_2
-#define uloc_getVariant uloc_getVariant_3_2
-#define uloc_openKeywordList uloc_openKeywordList_3_2
-#define uloc_openKeywords uloc_openKeywords_3_2
-#define uloc_setDefault uloc_setDefault_3_2
-#define uloc_setKeywordValue uloc_setKeywordValue_3_2
-#define ulocdata_getExemplarSet ulocdata_getExemplarSet_3_2
-#define ulocdata_getMeasurementSystem ulocdata_getMeasurementSystem_3_2
-#define ulocdata_getPaperSize ulocdata_getPaperSize_3_2
-#define umsg_applyPattern umsg_applyPattern_3_2
-#define umsg_clone umsg_clone_3_2
-#define umsg_close umsg_close_3_2
-#define umsg_format umsg_format_3_2
-#define umsg_getLocale umsg_getLocale_3_2
-#define umsg_getLocaleByType umsg_getLocaleByType_3_2
-#define umsg_open umsg_open_3_2
-#define umsg_parse umsg_parse_3_2
-#define umsg_setLocale umsg_setLocale_3_2
-#define umsg_toPattern umsg_toPattern_3_2
-#define umsg_vformat umsg_vformat_3_2
-#define umsg_vparse umsg_vparse_3_2
-#define umtx_atomic_dec umtx_atomic_dec_3_2
-#define umtx_atomic_inc umtx_atomic_inc_3_2
-#define umtx_cleanup umtx_cleanup_3_2
-#define umtx_destroy umtx_destroy_3_2
-#define umtx_init umtx_init_3_2
-#define umtx_lock umtx_lock_3_2
-#define umtx_unlock umtx_unlock_3_2
-#define unorm_addPropertyStarts unorm_addPropertyStarts_3_2
-#define unorm_closeIter unorm_closeIter_3_2
-#define unorm_compare unorm_compare_3_2
-#define unorm_compose unorm_compose_3_2
-#define unorm_concatenate unorm_concatenate_3_2
-#define unorm_decompose unorm_decompose_3_2
-#define unorm_getCanonStartSet unorm_getCanonStartSet_3_2
-#define unorm_getCanonicalDecomposition unorm_getCanonicalDecomposition_3_2
-#define unorm_getDecomposition unorm_getDecomposition_3_2
-#define unorm_getFCD16FromCodePoint unorm_getFCD16FromCodePoint_3_2
-#define unorm_getFCDTrie unorm_getFCDTrie_3_2
-#define unorm_getNX unorm_getNX_3_2
-#define unorm_getQuickCheck unorm_getQuickCheck_3_2
-#define unorm_getUnicodeVersion unorm_getUnicodeVersion_3_2
-#define unorm_haveData unorm_haveData_3_2
-#define unorm_internalIsFullCompositionExclusion unorm_internalIsFullCompositionExclusion_3_2
-#define unorm_internalNormalize unorm_internalNormalize_3_2
-#define unorm_internalNormalizeWithNX unorm_internalNormalizeWithNX_3_2
-#define unorm_internalQuickCheck unorm_internalQuickCheck_3_2
-#define unorm_isCanonSafeStart unorm_isCanonSafeStart_3_2
-#define unorm_isNFSkippable unorm_isNFSkippable_3_2
-#define unorm_isNormalized unorm_isNormalized_3_2
-#define unorm_isNormalizedWithOptions unorm_isNormalizedWithOptions_3_2
-#define unorm_next unorm_next_3_2
-#define unorm_normalize unorm_normalize_3_2
-#define unorm_openIter unorm_openIter_3_2
-#define unorm_previous unorm_previous_3_2
-#define unorm_quickCheck unorm_quickCheck_3_2
-#define unorm_quickCheckWithOptions unorm_quickCheckWithOptions_3_2
-#define unorm_setIter unorm_setIter_3_2
-#define unorm_swap unorm_swap_3_2
-#define unum_applyPattern unum_applyPattern_3_2
-#define unum_clone unum_clone_3_2
-#define unum_close unum_close_3_2
-#define unum_countAvailable unum_countAvailable_3_2
-#define unum_format unum_format_3_2
-#define unum_formatDouble unum_formatDouble_3_2
-#define unum_formatDoubleCurrency unum_formatDoubleCurrency_3_2
-#define unum_formatInt64 unum_formatInt64_3_2
-#define unum_getAttribute unum_getAttribute_3_2
-#define unum_getAvailable unum_getAvailable_3_2
-#define unum_getDoubleAttribute unum_getDoubleAttribute_3_2
-#define unum_getLocaleByType unum_getLocaleByType_3_2
-#define unum_getSymbol unum_getSymbol_3_2
-#define unum_getTextAttribute unum_getTextAttribute_3_2
-#define unum_open unum_open_3_2
-#define unum_parse unum_parse_3_2
-#define unum_parseDouble unum_parseDouble_3_2
-#define unum_parseDoubleCurrency unum_parseDoubleCurrency_3_2
-#define unum_parseInt64 unum_parseInt64_3_2
-#define unum_setAttribute unum_setAttribute_3_2
-#define unum_setDoubleAttribute unum_setDoubleAttribute_3_2
-#define unum_setSymbol unum_setSymbol_3_2
-#define unum_setTextAttribute unum_setTextAttribute_3_2
-#define unum_toPattern unum_toPattern_3_2
-#define upname_swap upname_swap_3_2
-#define uprops_getSource uprops_getSource_3_2
-#define uprops_swap uprops_swap_3_2
-#define uprv_asciiFromEbcdic uprv_asciiFromEbcdic_3_2
-#define uprv_asciitolower uprv_asciitolower_3_2
-#define uprv_ceil uprv_ceil_3_2
-#define uprv_cnttab_addContraction uprv_cnttab_addContraction_3_2
-#define uprv_cnttab_changeContraction uprv_cnttab_changeContraction_3_2
-#define uprv_cnttab_changeLastCE uprv_cnttab_changeLastCE_3_2
-#define uprv_cnttab_clone uprv_cnttab_clone_3_2
-#define uprv_cnttab_close uprv_cnttab_close_3_2
-#define uprv_cnttab_constructTable uprv_cnttab_constructTable_3_2
-#define uprv_cnttab_findCE uprv_cnttab_findCE_3_2
-#define uprv_cnttab_findCP uprv_cnttab_findCP_3_2
-#define uprv_cnttab_getCE uprv_cnttab_getCE_3_2
-#define uprv_cnttab_insertContraction uprv_cnttab_insertContraction_3_2
-#define uprv_cnttab_isTailored uprv_cnttab_isTailored_3_2
-#define uprv_cnttab_open uprv_cnttab_open_3_2
-#define uprv_cnttab_setContraction uprv_cnttab_setContraction_3_2
-#define uprv_compareASCIIPropertyNames uprv_compareASCIIPropertyNames_3_2
-#define uprv_compareEBCDICPropertyNames uprv_compareEBCDICPropertyNames_3_2
-#define uprv_compareInvAscii uprv_compareInvAscii_3_2
-#define uprv_compareInvEbcdic uprv_compareInvEbcdic_3_2
-#define uprv_convertToLCID uprv_convertToLCID_3_2
-#define uprv_convertToPosix uprv_convertToPosix_3_2
-#define uprv_copyAscii uprv_copyAscii_3_2
-#define uprv_copyEbcdic uprv_copyEbcdic_3_2
-#define uprv_dtostr uprv_dtostr_3_2
-#define uprv_ebcdicFromAscii uprv_ebcdicFromAscii_3_2
-#define uprv_ebcdictolower uprv_ebcdictolower_3_2
-#define uprv_fabs uprv_fabs_3_2
-#define uprv_floor uprv_floor_3_2
-#define uprv_fmax uprv_fmax_3_2
-#define uprv_fmin uprv_fmin_3_2
-#define uprv_fmod uprv_fmod_3_2
-#define uprv_free uprv_free_3_2
-#define uprv_getCharNameCharacters uprv_getCharNameCharacters_3_2
-#define uprv_getDefaultCodepage uprv_getDefaultCodepage_3_2
-#define uprv_getDefaultLocaleID uprv_getDefaultLocaleID_3_2
-#define uprv_getInfinity uprv_getInfinity_3_2
-#define uprv_getMaxCharNameLength uprv_getMaxCharNameLength_3_2
-#define uprv_getMaxValues uprv_getMaxValues_3_2
-#define uprv_getNaN uprv_getNaN_3_2
-#define uprv_getStaticCurrencyName uprv_getStaticCurrencyName_3_2
-#define uprv_getUTCtime uprv_getUTCtime_3_2
-#define uprv_haveProperties uprv_haveProperties_3_2
-#define uprv_init_collIterate uprv_init_collIterate_3_2
-#define uprv_int32Comparator uprv_int32Comparator_3_2
-#define uprv_isInfinite uprv_isInfinite_3_2
-#define uprv_isInvariantString uprv_isInvariantString_3_2
-#define uprv_isInvariantUString uprv_isInvariantUString_3_2
-#define uprv_isNaN uprv_isNaN_3_2
-#define uprv_isNegativeInfinity uprv_isNegativeInfinity_3_2
-#define uprv_isPositiveInfinity uprv_isPositiveInfinity_3_2
-#define uprv_isRuleWhiteSpace uprv_isRuleWhiteSpace_3_2
-#define uprv_itou uprv_itou_3_2
-#define uprv_loadPropsData uprv_loadPropsData_3_2
-#define uprv_log uprv_log_3_2
-#define uprv_log10 uprv_log10_3_2
-#define uprv_malloc uprv_malloc_3_2
-#define uprv_mapFile uprv_mapFile_3_2
-#define uprv_max uprv_max_3_2
-#define uprv_maxMantissa uprv_maxMantissa_3_2
-#define uprv_min uprv_min_3_2
-#define uprv_modf uprv_modf_3_2
-#define uprv_openRuleWhiteSpaceSet uprv_openRuleWhiteSpaceSet_3_2
-#define uprv_pathIsAbsolute uprv_pathIsAbsolute_3_2
-#define uprv_pow uprv_pow_3_2
-#define uprv_pow10 uprv_pow10_3_2
-#define uprv_realloc uprv_realloc_3_2
-#define uprv_round uprv_round_3_2
-#define uprv_sortArray uprv_sortArray_3_2
-#define uprv_strCompare uprv_strCompare_3_2
-#define uprv_strdup uprv_strdup_3_2
-#define uprv_strndup uprv_strndup_3_2
-#define uprv_syntaxError uprv_syntaxError_3_2
-#define uprv_timezone uprv_timezone_3_2
-#define uprv_toupper uprv_toupper_3_2
-#define uprv_trunc uprv_trunc_3_2
-#define uprv_tzname uprv_tzname_3_2
-#define uprv_tzset uprv_tzset_3_2
-#define uprv_uca_addAnElement uprv_uca_addAnElement_3_2
-#define uprv_uca_assembleTable uprv_uca_assembleTable_3_2
-#define uprv_uca_canonicalClosure uprv_uca_canonicalClosure_3_2
-#define uprv_uca_cloneTempTable uprv_uca_cloneTempTable_3_2
-#define uprv_uca_closeTempTable uprv_uca_closeTempTable_3_2
-#define uprv_uca_getCodePointFromRaw uprv_uca_getCodePointFromRaw_3_2
-#define uprv_uca_getImplicitFromRaw uprv_uca_getImplicitFromRaw_3_2
-#define uprv_uca_getImplicitPrimary uprv_uca_getImplicitPrimary_3_2
-#define uprv_uca_getRawFromCodePoint uprv_uca_getRawFromCodePoint_3_2
-#define uprv_uca_getRawFromImplicit uprv_uca_getRawFromImplicit_3_2
-#define uprv_uca_initImplicitConstants uprv_uca_initImplicitConstants_3_2
-#define uprv_uca_initTempTable uprv_uca_initTempTable_3_2
-#define uprv_uint16Comparator uprv_uint16Comparator_3_2
-#define uprv_uint32Comparator uprv_uint32Comparator_3_2
-#define uprv_unmapFile uprv_unmapFile_3_2
-#define uregex_appendReplacement uregex_appendReplacement_3_2
-#define uregex_appendTail uregex_appendTail_3_2
-#define uregex_clone uregex_clone_3_2
-#define uregex_close uregex_close_3_2
-#define uregex_end uregex_end_3_2
-#define uregex_find uregex_find_3_2
-#define uregex_findNext uregex_findNext_3_2
-#define uregex_flags uregex_flags_3_2
-#define uregex_getText uregex_getText_3_2
-#define uregex_group uregex_group_3_2
-#define uregex_groupCount uregex_groupCount_3_2
-#define uregex_lookingAt uregex_lookingAt_3_2
-#define uregex_matches uregex_matches_3_2
-#define uregex_open uregex_open_3_2
-#define uregex_openC uregex_openC_3_2
-#define uregex_pattern uregex_pattern_3_2
-#define uregex_replaceAll uregex_replaceAll_3_2
-#define uregex_replaceFirst uregex_replaceFirst_3_2
-#define uregex_reset uregex_reset_3_2
-#define uregex_setText uregex_setText_3_2
-#define uregex_split uregex_split_3_2
-#define uregex_start uregex_start_3_2
-#define ures_appendResPath ures_appendResPath_3_2
-#define ures_close ures_close_3_2
-#define ures_copyResb ures_copyResb_3_2
-#define ures_countArrayItems ures_countArrayItems_3_2
-#define ures_findResource ures_findResource_3_2
-#define ures_findSubResource ures_findSubResource_3_2
-#define ures_freeResPath ures_freeResPath_3_2
-#define ures_getBinary ures_getBinary_3_2
-#define ures_getByIndex ures_getByIndex_3_2
-#define ures_getByKey ures_getByKey_3_2
-#define ures_getByKeyWithFallback ures_getByKeyWithFallback_3_2
-#define ures_getFunctionalEquivalent ures_getFunctionalEquivalent_3_2
-#define ures_getInt ures_getInt_3_2
-#define ures_getIntVector ures_getIntVector_3_2
-#define ures_getKey ures_getKey_3_2
-#define ures_getKeywordValues ures_getKeywordValues_3_2
-#define ures_getLocale ures_getLocale_3_2
-#define ures_getLocaleByType ures_getLocaleByType_3_2
-#define ures_getName ures_getName_3_2
-#define ures_getNextResource ures_getNextResource_3_2
-#define ures_getNextString ures_getNextString_3_2
-#define ures_getPath ures_getPath_3_2
-#define ures_getSize ures_getSize_3_2
-#define ures_getString ures_getString_3_2
-#define ures_getStringByIndex ures_getStringByIndex_3_2
-#define ures_getStringByKey ures_getStringByKey_3_2
-#define ures_getType ures_getType_3_2
-#define ures_getUInt ures_getUInt_3_2
-#define ures_getVersion ures_getVersion_3_2
-#define ures_getVersionNumber ures_getVersionNumber_3_2
-#define ures_hasNext ures_hasNext_3_2
-#define ures_initStackObject ures_initStackObject_3_2
-#define ures_open ures_open_3_2
-#define ures_openAvailableLocales ures_openAvailableLocales_3_2
-#define ures_openDirect ures_openDirect_3_2
-#define ures_openFillIn ures_openFillIn_3_2
-#define ures_openU ures_openU_3_2
-#define ures_resetIterator ures_resetIterator_3_2
-#define ures_swap ures_swap_3_2
-#define uscript_closeRun uscript_closeRun_3_2
-#define uscript_getCode uscript_getCode_3_2
-#define uscript_getName uscript_getName_3_2
-#define uscript_getScript uscript_getScript_3_2
-#define uscript_getShortName uscript_getShortName_3_2
-#define uscript_nextRun uscript_nextRun_3_2
-#define uscript_openRun uscript_openRun_3_2
-#define uscript_resetRun uscript_resetRun_3_2
-#define uscript_setRunText uscript_setRunText_3_2
-#define usearch_close usearch_close_3_2
-#define usearch_first usearch_first_3_2
-#define usearch_following usearch_following_3_2
-#define usearch_getAttribute usearch_getAttribute_3_2
-#define usearch_getBreakIterator usearch_getBreakIterator_3_2
-#define usearch_getCollator usearch_getCollator_3_2
-#define usearch_getMatchedLength usearch_getMatchedLength_3_2
-#define usearch_getMatchedStart usearch_getMatchedStart_3_2
-#define usearch_getMatchedText usearch_getMatchedText_3_2
-#define usearch_getOffset usearch_getOffset_3_2
-#define usearch_getPattern usearch_getPattern_3_2
-#define usearch_getText usearch_getText_3_2
-#define usearch_handleNextCanonical usearch_handleNextCanonical_3_2
-#define usearch_handleNextExact usearch_handleNextExact_3_2
-#define usearch_handlePreviousCanonical usearch_handlePreviousCanonical_3_2
-#define usearch_handlePreviousExact usearch_handlePreviousExact_3_2
-#define usearch_last usearch_last_3_2
-#define usearch_next usearch_next_3_2
-#define usearch_open usearch_open_3_2
-#define usearch_openFromCollator usearch_openFromCollator_3_2
-#define usearch_preceding usearch_preceding_3_2
-#define usearch_previous usearch_previous_3_2
-#define usearch_reset usearch_reset_3_2
-#define usearch_setAttribute usearch_setAttribute_3_2
-#define usearch_setBreakIterator usearch_setBreakIterator_3_2
-#define usearch_setCollator usearch_setCollator_3_2
-#define usearch_setOffset usearch_setOffset_3_2
-#define usearch_setPattern usearch_setPattern_3_2
-#define usearch_setText usearch_setText_3_2
-#define userv_deleteStringPair userv_deleteStringPair_3_2
-#define uset_add uset_add_3_2
-#define uset_addAll uset_addAll_3_2
-#define uset_addRange uset_addRange_3_2
-#define uset_addString uset_addString_3_2
-#define uset_applyIntPropertyValue uset_applyIntPropertyValue_3_2
-#define uset_applyPattern uset_applyPattern_3_2
-#define uset_applyPropertyAlias uset_applyPropertyAlias_3_2
-#define uset_charAt uset_charAt_3_2
-#define uset_clear uset_clear_3_2
-#define uset_close uset_close_3_2
-#define uset_compact uset_compact_3_2
-#define uset_complement uset_complement_3_2
-#define uset_complementAll uset_complementAll_3_2
-#define uset_contains uset_contains_3_2
-#define uset_containsAll uset_containsAll_3_2
-#define uset_containsNone uset_containsNone_3_2
-#define uset_containsRange uset_containsRange_3_2
-#define uset_containsSome uset_containsSome_3_2
-#define uset_containsString uset_containsString_3_2
-#define uset_equals uset_equals_3_2
-#define uset_getItem uset_getItem_3_2
-#define uset_getItemCount uset_getItemCount_3_2
-#define uset_getSerializedRange uset_getSerializedRange_3_2
-#define uset_getSerializedRangeCount uset_getSerializedRangeCount_3_2
-#define uset_getSerializedSet uset_getSerializedSet_3_2
-#define uset_indexOf uset_indexOf_3_2
-#define uset_isEmpty uset_isEmpty_3_2
-#define uset_open uset_open_3_2
-#define uset_openPattern uset_openPattern_3_2
-#define uset_openPatternOptions uset_openPatternOptions_3_2
-#define uset_remove uset_remove_3_2
-#define uset_removeAll uset_removeAll_3_2
-#define uset_removeRange uset_removeRange_3_2
-#define uset_removeString uset_removeString_3_2
-#define uset_resemblesPattern uset_resemblesPattern_3_2
-#define uset_retain uset_retain_3_2
-#define uset_retainAll uset_retainAll_3_2
-#define uset_serialize uset_serialize_3_2
-#define uset_serializedContains uset_serializedContains_3_2
-#define uset_set uset_set_3_2
-#define uset_setSerializedToOne uset_setSerializedToOne_3_2
-#define uset_size uset_size_3_2
-#define uset_toPattern uset_toPattern_3_2
-#define usprep_close usprep_close_3_2
-#define usprep_open usprep_open_3_2
-#define usprep_prepare usprep_prepare_3_2
-#define usprep_swap usprep_swap_3_2
-#define ustr_foldCase ustr_foldCase_3_2
-#define ustr_toLower ustr_toLower_3_2
-#define ustr_toTitle ustr_toTitle_3_2
-#define ustr_toUpper ustr_toUpper_3_2
-#define utf8_appendCharSafeBody utf8_appendCharSafeBody_3_2
-#define utf8_back1SafeBody utf8_back1SafeBody_3_2
-#define utf8_countTrailBytes utf8_countTrailBytes_3_2
-#define utf8_nextCharSafeBody utf8_nextCharSafeBody_3_2
-#define utf8_prevCharSafeBody utf8_prevCharSafeBody_3_2
-#define utmscale_fromInt64 utmscale_fromInt64_3_2
-#define utmscale_getTimeScaleValue utmscale_getTimeScaleValue_3_2
-#define utmscale_toInt64 utmscale_toInt64_3_2
-#define utrace_cleanup utrace_cleanup_3_2
-#define utrace_data utrace_data_3_2
-#define utrace_entry utrace_entry_3_2
-#define utrace_exit utrace_exit_3_2
-#define utrace_format utrace_format_3_2
-#define utrace_functionName utrace_functionName_3_2
-#define utrace_getFunctions utrace_getFunctions_3_2
-#define utrace_getLevel utrace_getLevel_3_2
-#define utrace_level utrace_level_3_2
-#define utrace_setFunctions utrace_setFunctions_3_2
-#define utrace_setLevel utrace_setLevel_3_2
-#define utrace_vformat utrace_vformat_3_2
-#define utrans_clone utrans_clone_3_2
-#define utrans_close utrans_close_3_2
-#define utrans_countAvailableIDs utrans_countAvailableIDs_3_2
-#define utrans_getAvailableID utrans_getAvailableID_3_2
-#define utrans_getID utrans_getID_3_2
-#define utrans_getUnicodeID utrans_getUnicodeID_3_2
-#define utrans_open utrans_open_3_2
-#define utrans_openIDs utrans_openIDs_3_2
-#define utrans_openInverse utrans_openInverse_3_2
-#define utrans_openU utrans_openU_3_2
-#define utrans_register utrans_register_3_2
-#define utrans_rep_caseContextIterator utrans_rep_caseContextIterator_3_2
-#define utrans_setFilter utrans_setFilter_3_2
-#define utrans_trans utrans_trans_3_2
-#define utrans_transIncremental utrans_transIncremental_3_2
-#define utrans_transIncrementalUChars utrans_transIncrementalUChars_3_2
-#define utrans_transUChars utrans_transUChars_3_2
-#define utrans_unregister utrans_unregister_3_2
-#define utrans_unregisterID utrans_unregisterID_3_2
-#define utrie_clone utrie_clone_3_2
-#define utrie_close utrie_close_3_2
-#define utrie_enum utrie_enum_3_2
-#define utrie_get32 utrie_get32_3_2
-#define utrie_getData utrie_getData_3_2
-#define utrie_open utrie_open_3_2
-#define utrie_serialize utrie_serialize_3_2
-#define utrie_set32 utrie_set32_3_2
-#define utrie_setRange32 utrie_setRange32_3_2
-#define utrie_swap utrie_swap_3_2
-#define utrie_unserialize utrie_unserialize_3_2
+#define DECPOWERS U_ICU_ENTRY_POINT_RENAME(DECPOWERS)
+#define DECSTICKYTAB U_ICU_ENTRY_POINT_RENAME(DECSTICKYTAB)
+#define LNnn U_ICU_ENTRY_POINT_RENAME(LNnn)
+#define T_CString_int64ToString U_ICU_ENTRY_POINT_RENAME(T_CString_int64ToString)
+#define T_CString_integerToString U_ICU_ENTRY_POINT_RENAME(T_CString_integerToString)
+#define T_CString_stricmp U_ICU_ENTRY_POINT_RENAME(T_CString_stricmp)
+#define T_CString_stringToInteger U_ICU_ENTRY_POINT_RENAME(T_CString_stringToInteger)
+#define T_CString_strnicmp U_ICU_ENTRY_POINT_RENAME(T_CString_strnicmp)
+#define T_CString_toLowerCase U_ICU_ENTRY_POINT_RENAME(T_CString_toLowerCase)
+#define T_CString_toUpperCase U_ICU_ENTRY_POINT_RENAME(T_CString_toUpperCase)
+#define UCNV_FROM_U_CALLBACK_ESCAPE U_ICU_ENTRY_POINT_RENAME(UCNV_FROM_U_CALLBACK_ESCAPE)
+#define UCNV_FROM_U_CALLBACK_SKIP U_ICU_ENTRY_POINT_RENAME(UCNV_FROM_U_CALLBACK_SKIP)
+#define UCNV_FROM_U_CALLBACK_STOP U_ICU_ENTRY_POINT_RENAME(UCNV_FROM_U_CALLBACK_STOP)
+#define UCNV_FROM_U_CALLBACK_SUBSTITUTE U_ICU_ENTRY_POINT_RENAME(UCNV_FROM_U_CALLBACK_SUBSTITUTE)
+#define UCNV_TO_U_CALLBACK_ESCAPE U_ICU_ENTRY_POINT_RENAME(UCNV_TO_U_CALLBACK_ESCAPE)
+#define UCNV_TO_U_CALLBACK_SKIP U_ICU_ENTRY_POINT_RENAME(UCNV_TO_U_CALLBACK_SKIP)
+#define UCNV_TO_U_CALLBACK_STOP U_ICU_ENTRY_POINT_RENAME(UCNV_TO_U_CALLBACK_STOP)
+#define UCNV_TO_U_CALLBACK_SUBSTITUTE U_ICU_ENTRY_POINT_RENAME(UCNV_TO_U_CALLBACK_SUBSTITUTE)
+#define UDataMemory_createNewInstance U_ICU_ENTRY_POINT_RENAME(UDataMemory_createNewInstance)
+#define UDataMemory_init U_ICU_ENTRY_POINT_RENAME(UDataMemory_init)
+#define UDataMemory_isLoaded U_ICU_ENTRY_POINT_RENAME(UDataMemory_isLoaded)
+#define UDataMemory_normalizeDataPointer U_ICU_ENTRY_POINT_RENAME(UDataMemory_normalizeDataPointer)
+#define UDataMemory_setData U_ICU_ENTRY_POINT_RENAME(UDataMemory_setData)
+#define UDatamemory_assign U_ICU_ENTRY_POINT_RENAME(UDatamemory_assign)
+#define _ASCIIData U_ICU_ENTRY_POINT_RENAME(_ASCIIData)
+#define _Bocu1Data U_ICU_ENTRY_POINT_RENAME(_Bocu1Data)
+#define _CESU8Data U_ICU_ENTRY_POINT_RENAME(_CESU8Data)
+#define _HZData U_ICU_ENTRY_POINT_RENAME(_HZData)
+#define _IMAPData U_ICU_ENTRY_POINT_RENAME(_IMAPData)
+#define _ISCIIData U_ICU_ENTRY_POINT_RENAME(_ISCIIData)
+#define _ISO2022Data U_ICU_ENTRY_POINT_RENAME(_ISO2022Data)
+#define _LMBCSData1 U_ICU_ENTRY_POINT_RENAME(_LMBCSData1)
+#define _LMBCSData11 U_ICU_ENTRY_POINT_RENAME(_LMBCSData11)
+#define _LMBCSData16 U_ICU_ENTRY_POINT_RENAME(_LMBCSData16)
+#define _LMBCSData17 U_ICU_ENTRY_POINT_RENAME(_LMBCSData17)
+#define _LMBCSData18 U_ICU_ENTRY_POINT_RENAME(_LMBCSData18)
+#define _LMBCSData19 U_ICU_ENTRY_POINT_RENAME(_LMBCSData19)
+#define _LMBCSData2 U_ICU_ENTRY_POINT_RENAME(_LMBCSData2)
+#define _LMBCSData3 U_ICU_ENTRY_POINT_RENAME(_LMBCSData3)
+#define _LMBCSData4 U_ICU_ENTRY_POINT_RENAME(_LMBCSData4)
+#define _LMBCSData5 U_ICU_ENTRY_POINT_RENAME(_LMBCSData5)
+#define _LMBCSData6 U_ICU_ENTRY_POINT_RENAME(_LMBCSData6)
+#define _LMBCSData8 U_ICU_ENTRY_POINT_RENAME(_LMBCSData8)
+#define _Latin1Data U_ICU_ENTRY_POINT_RENAME(_Latin1Data)
+#define _MBCSData U_ICU_ENTRY_POINT_RENAME(_MBCSData)
+#define _SCSUData U_ICU_ENTRY_POINT_RENAME(_SCSUData)
+#define _UTF16BEData U_ICU_ENTRY_POINT_RENAME(_UTF16BEData)
+#define _UTF16Data U_ICU_ENTRY_POINT_RENAME(_UTF16Data)
+#define _UTF16LEData U_ICU_ENTRY_POINT_RENAME(_UTF16LEData)
+#define _UTF32BEData U_ICU_ENTRY_POINT_RENAME(_UTF32BEData)
+#define _UTF32Data U_ICU_ENTRY_POINT_RENAME(_UTF32Data)
+#define _UTF32LEData U_ICU_ENTRY_POINT_RENAME(_UTF32LEData)
+#define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
+#define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
+#define bms_close U_ICU_ENTRY_POINT_RENAME(bms_close)
+#define bms_empty U_ICU_ENTRY_POINT_RENAME(bms_empty)
+#define bms_getData U_ICU_ENTRY_POINT_RENAME(bms_getData)
+#define bms_open U_ICU_ENTRY_POINT_RENAME(bms_open)
+#define bms_search U_ICU_ENTRY_POINT_RENAME(bms_search)
+#define bms_setTargetString U_ICU_ENTRY_POINT_RENAME(bms_setTargetString)
+#define buildWSConfusableData U_ICU_ENTRY_POINT_RENAME(buildWSConfusableData)
+#define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
+#define cmemory_inUse U_ICU_ENTRY_POINT_RENAME(cmemory_inUse)
+#define d2utable U_ICU_ENTRY_POINT_RENAME(d2utable)
+#define deleteCEList U_ICU_ENTRY_POINT_RENAME(deleteCEList)
+#define deleteChars U_ICU_ENTRY_POINT_RENAME(deleteChars)
+#define deleteCollDataCacheEntry U_ICU_ENTRY_POINT_RENAME(deleteCollDataCacheEntry)
+#define deleteStringList U_ICU_ENTRY_POINT_RENAME(deleteStringList)
+#define deleteUnicodeStringKey U_ICU_ENTRY_POINT_RENAME(deleteUnicodeStringKey)
+#define izrule_clone U_ICU_ENTRY_POINT_RENAME(izrule_clone)
+#define izrule_close U_ICU_ENTRY_POINT_RENAME(izrule_close)
+#define izrule_equals U_ICU_ENTRY_POINT_RENAME(izrule_equals)
+#define izrule_getDSTSavings U_ICU_ENTRY_POINT_RENAME(izrule_getDSTSavings)
+#define izrule_getDynamicClassID U_ICU_ENTRY_POINT_RENAME(izrule_getDynamicClassID)
+#define izrule_getFinalStart U_ICU_ENTRY_POINT_RENAME(izrule_getFinalStart)
+#define izrule_getFirstStart U_ICU_ENTRY_POINT_RENAME(izrule_getFirstStart)
+#define izrule_getName U_ICU_ENTRY_POINT_RENAME(izrule_getName)
+#define izrule_getNextStart U_ICU_ENTRY_POINT_RENAME(izrule_getNextStart)
+#define izrule_getPreviousStart U_ICU_ENTRY_POINT_RENAME(izrule_getPreviousStart)
+#define izrule_getRawOffset U_ICU_ENTRY_POINT_RENAME(izrule_getRawOffset)
+#define izrule_getStaticClassID U_ICU_ENTRY_POINT_RENAME(izrule_getStaticClassID)
+#define izrule_isEquivalentTo U_ICU_ENTRY_POINT_RENAME(izrule_isEquivalentTo)
+#define izrule_open U_ICU_ENTRY_POINT_RENAME(izrule_open)
+#define le_close U_ICU_ENTRY_POINT_RENAME(le_close)
+#define le_create U_ICU_ENTRY_POINT_RENAME(le_create)
+#define le_getCharIndices U_ICU_ENTRY_POINT_RENAME(le_getCharIndices)
+#define le_getCharIndicesWithBase U_ICU_ENTRY_POINT_RENAME(le_getCharIndicesWithBase)
+#define le_getGlyphCount U_ICU_ENTRY_POINT_RENAME(le_getGlyphCount)
+#define le_getGlyphPosition U_ICU_ENTRY_POINT_RENAME(le_getGlyphPosition)
+#define le_getGlyphPositions U_ICU_ENTRY_POINT_RENAME(le_getGlyphPositions)
+#define le_getGlyphs U_ICU_ENTRY_POINT_RENAME(le_getGlyphs)
+#define le_layoutChars U_ICU_ENTRY_POINT_RENAME(le_layoutChars)
+#define le_reset U_ICU_ENTRY_POINT_RENAME(le_reset)
+#define locale_getKeywords U_ICU_ENTRY_POINT_RENAME(locale_getKeywords)
+#define locale_getKeywordsStart U_ICU_ENTRY_POINT_RENAME(locale_getKeywordsStart)
+#define locale_get_default U_ICU_ENTRY_POINT_RENAME(locale_get_default)
+#define locale_set_default U_ICU_ENTRY_POINT_RENAME(locale_set_default)
+#define pl_addFontRun U_ICU_ENTRY_POINT_RENAME(pl_addFontRun)
+#define pl_addLocaleRun U_ICU_ENTRY_POINT_RENAME(pl_addLocaleRun)
+#define pl_addValueRun U_ICU_ENTRY_POINT_RENAME(pl_addValueRun)
+#define pl_close U_ICU_ENTRY_POINT_RENAME(pl_close)
+#define pl_closeFontRuns U_ICU_ENTRY_POINT_RENAME(pl_closeFontRuns)
+#define pl_closeLine U_ICU_ENTRY_POINT_RENAME(pl_closeLine)
+#define pl_closeLocaleRuns U_ICU_ENTRY_POINT_RENAME(pl_closeLocaleRuns)
+#define pl_closeValueRuns U_ICU_ENTRY_POINT_RENAME(pl_closeValueRuns)
+#define pl_countLineRuns U_ICU_ENTRY_POINT_RENAME(pl_countLineRuns)
+#define pl_create U_ICU_ENTRY_POINT_RENAME(pl_create)
+#define pl_getAscent U_ICU_ENTRY_POINT_RENAME(pl_getAscent)
+#define pl_getDescent U_ICU_ENTRY_POINT_RENAME(pl_getDescent)
+#define pl_getFontRunCount U_ICU_ENTRY_POINT_RENAME(pl_getFontRunCount)
+#define pl_getFontRunFont U_ICU_ENTRY_POINT_RENAME(pl_getFontRunFont)
+#define pl_getFontRunLastLimit U_ICU_ENTRY_POINT_RENAME(pl_getFontRunLastLimit)
+#define pl_getFontRunLimit U_ICU_ENTRY_POINT_RENAME(pl_getFontRunLimit)
+#define pl_getLeading U_ICU_ENTRY_POINT_RENAME(pl_getLeading)
+#define pl_getLineAscent U_ICU_ENTRY_POINT_RENAME(pl_getLineAscent)
+#define pl_getLineDescent U_ICU_ENTRY_POINT_RENAME(pl_getLineDescent)
+#define pl_getLineLeading U_ICU_ENTRY_POINT_RENAME(pl_getLineLeading)
+#define pl_getLineVisualRun U_ICU_ENTRY_POINT_RENAME(pl_getLineVisualRun)
+#define pl_getLineWidth U_ICU_ENTRY_POINT_RENAME(pl_getLineWidth)
+#define pl_getLocaleRunCount U_ICU_ENTRY_POINT_RENAME(pl_getLocaleRunCount)
+#define pl_getLocaleRunLastLimit U_ICU_ENTRY_POINT_RENAME(pl_getLocaleRunLastLimit)
+#define pl_getLocaleRunLimit U_ICU_ENTRY_POINT_RENAME(pl_getLocaleRunLimit)
+#define pl_getLocaleRunLocale U_ICU_ENTRY_POINT_RENAME(pl_getLocaleRunLocale)
+#define pl_getParagraphLevel U_ICU_ENTRY_POINT_RENAME(pl_getParagraphLevel)
+#define pl_getTextDirection U_ICU_ENTRY_POINT_RENAME(pl_getTextDirection)
+#define pl_getValueRunCount U_ICU_ENTRY_POINT_RENAME(pl_getValueRunCount)
+#define pl_getValueRunLastLimit U_ICU_ENTRY_POINT_RENAME(pl_getValueRunLastLimit)
+#define pl_getValueRunLimit U_ICU_ENTRY_POINT_RENAME(pl_getValueRunLimit)
+#define pl_getValueRunValue U_ICU_ENTRY_POINT_RENAME(pl_getValueRunValue)
+#define pl_getVisualRunAscent U_ICU_ENTRY_POINT_RENAME(pl_getVisualRunAscent)
+#define pl_getVisualRunDescent U_ICU_ENTRY_POINT_RENAME(pl_getVisualRunDescent)
+#define pl_getVisualRunDirection U_ICU_ENTRY_POINT_RENAME(pl_getVisualRunDirection)
+#define pl_getVisualRunFont U_ICU_ENTRY_POINT_RENAME(pl_getVisualRunFont)
+#define pl_getVisualRunGlyphCount U_ICU_ENTRY_POINT_RENAME(pl_getVisualRunGlyphCount)
+#define pl_getVisualRunGlyphToCharMap U_ICU_ENTRY_POINT_RENAME(pl_getVisualRunGlyphToCharMap)
+#define pl_getVisualRunGlyphs U_ICU_ENTRY_POINT_RENAME(pl_getVisualRunGlyphs)
+#define pl_getVisualRunLeading U_ICU_ENTRY_POINT_RENAME(pl_getVisualRunLeading)
+#define pl_getVisualRunPositions U_ICU_ENTRY_POINT_RENAME(pl_getVisualRunPositions)
+#define pl_isComplex U_ICU_ENTRY_POINT_RENAME(pl_isComplex)
+#define pl_nextLine U_ICU_ENTRY_POINT_RENAME(pl_nextLine)
+#define pl_openEmptyFontRuns U_ICU_ENTRY_POINT_RENAME(pl_openEmptyFontRuns)
+#define pl_openEmptyLocaleRuns U_ICU_ENTRY_POINT_RENAME(pl_openEmptyLocaleRuns)
+#define pl_openEmptyValueRuns U_ICU_ENTRY_POINT_RENAME(pl_openEmptyValueRuns)
+#define pl_openFontRuns U_ICU_ENTRY_POINT_RENAME(pl_openFontRuns)
+#define pl_openLocaleRuns U_ICU_ENTRY_POINT_RENAME(pl_openLocaleRuns)
+#define pl_openValueRuns U_ICU_ENTRY_POINT_RENAME(pl_openValueRuns)
+#define pl_reflow U_ICU_ENTRY_POINT_RENAME(pl_reflow)
+#define pl_resetFontRuns U_ICU_ENTRY_POINT_RENAME(pl_resetFontRuns)
+#define pl_resetLocaleRuns U_ICU_ENTRY_POINT_RENAME(pl_resetLocaleRuns)
+#define pl_resetValueRuns U_ICU_ENTRY_POINT_RENAME(pl_resetValueRuns)
+#define res_countArrayItems U_ICU_ENTRY_POINT_RENAME(res_countArrayItems)
+#define res_findResource U_ICU_ENTRY_POINT_RENAME(res_findResource)
+#define res_getAlias U_ICU_ENTRY_POINT_RENAME(res_getAlias)
+#define res_getArrayItem U_ICU_ENTRY_POINT_RENAME(res_getArrayItem)
+#define res_getBinary U_ICU_ENTRY_POINT_RENAME(res_getBinary)
+#define res_getIntVector U_ICU_ENTRY_POINT_RENAME(res_getIntVector)
+#define res_getPublicType U_ICU_ENTRY_POINT_RENAME(res_getPublicType)
+#define res_getResource U_ICU_ENTRY_POINT_RENAME(res_getResource)
+#define res_getString U_ICU_ENTRY_POINT_RENAME(res_getString)
+#define res_getTableItemByIndex U_ICU_ENTRY_POINT_RENAME(res_getTableItemByIndex)
+#define res_getTableItemByKey U_ICU_ENTRY_POINT_RENAME(res_getTableItemByKey)
+#define res_load U_ICU_ENTRY_POINT_RENAME(res_load)
+#define res_read U_ICU_ENTRY_POINT_RENAME(res_read)
+#define res_unload U_ICU_ENTRY_POINT_RENAME(res_unload)
+#define tmutfmtHashTableValueComparator U_ICU_ENTRY_POINT_RENAME(tmutfmtHashTableValueComparator)
+#define triedict_swap U_ICU_ENTRY_POINT_RENAME(triedict_swap)
+#define u_UCharsToChars U_ICU_ENTRY_POINT_RENAME(u_UCharsToChars)
+#define u_austrcpy U_ICU_ENTRY_POINT_RENAME(u_austrcpy)
+#define u_austrncpy U_ICU_ENTRY_POINT_RENAME(u_austrncpy)
+#define u_catclose U_ICU_ENTRY_POINT_RENAME(u_catclose)
+#define u_catgets U_ICU_ENTRY_POINT_RENAME(u_catgets)
+#define u_catopen U_ICU_ENTRY_POINT_RENAME(u_catopen)
+#define u_charAge U_ICU_ENTRY_POINT_RENAME(u_charAge)
+#define u_charDigitValue U_ICU_ENTRY_POINT_RENAME(u_charDigitValue)
+#define u_charDirection U_ICU_ENTRY_POINT_RENAME(u_charDirection)
+#define u_charFromName U_ICU_ENTRY_POINT_RENAME(u_charFromName)
+#define u_charMirror U_ICU_ENTRY_POINT_RENAME(u_charMirror)
+#define u_charName U_ICU_ENTRY_POINT_RENAME(u_charName)
+#define u_charType U_ICU_ENTRY_POINT_RENAME(u_charType)
+#define u_charsToUChars U_ICU_ENTRY_POINT_RENAME(u_charsToUChars)
+#define u_cleanup U_ICU_ENTRY_POINT_RENAME(u_cleanup)
+#define u_countChar32 U_ICU_ENTRY_POINT_RENAME(u_countChar32)
+#define u_digit U_ICU_ENTRY_POINT_RENAME(u_digit)
+#define u_enumCharNames U_ICU_ENTRY_POINT_RENAME(u_enumCharNames)
+#define u_enumCharTypes U_ICU_ENTRY_POINT_RENAME(u_enumCharTypes)
+#define u_errorName U_ICU_ENTRY_POINT_RENAME(u_errorName)
+#define u_fadopt U_ICU_ENTRY_POINT_RENAME(u_fadopt)
+#define u_fclose U_ICU_ENTRY_POINT_RENAME(u_fclose)
+#define u_feof U_ICU_ENTRY_POINT_RENAME(u_feof)
+#define u_fflush U_ICU_ENTRY_POINT_RENAME(u_fflush)
+#define u_fgetConverter U_ICU_ENTRY_POINT_RENAME(u_fgetConverter)
+#define u_fgetc U_ICU_ENTRY_POINT_RENAME(u_fgetc)
+#define u_fgetcodepage U_ICU_ENTRY_POINT_RENAME(u_fgetcodepage)
+#define u_fgetcx U_ICU_ENTRY_POINT_RENAME(u_fgetcx)
+#define u_fgetfile U_ICU_ENTRY_POINT_RENAME(u_fgetfile)
+#define u_fgetlocale U_ICU_ENTRY_POINT_RENAME(u_fgetlocale)
+#define u_fgets U_ICU_ENTRY_POINT_RENAME(u_fgets)
+#define u_file_read U_ICU_ENTRY_POINT_RENAME(u_file_read)
+#define u_file_write U_ICU_ENTRY_POINT_RENAME(u_file_write)
+#define u_file_write_flush U_ICU_ENTRY_POINT_RENAME(u_file_write_flush)
+#define u_finit U_ICU_ENTRY_POINT_RENAME(u_finit)
+#define u_flushDefaultConverter U_ICU_ENTRY_POINT_RENAME(u_flushDefaultConverter)
+#define u_foldCase U_ICU_ENTRY_POINT_RENAME(u_foldCase)
+#define u_fopen U_ICU_ENTRY_POINT_RENAME(u_fopen)
+#define u_forDigit U_ICU_ENTRY_POINT_RENAME(u_forDigit)
+#define u_formatMessage U_ICU_ENTRY_POINT_RENAME(u_formatMessage)
+#define u_formatMessageWithError U_ICU_ENTRY_POINT_RENAME(u_formatMessageWithError)
+#define u_fprintf U_ICU_ENTRY_POINT_RENAME(u_fprintf)
+#define u_fprintf_u U_ICU_ENTRY_POINT_RENAME(u_fprintf_u)
+#define u_fputc U_ICU_ENTRY_POINT_RENAME(u_fputc)
+#define u_fputs U_ICU_ENTRY_POINT_RENAME(u_fputs)
+#define u_frewind U_ICU_ENTRY_POINT_RENAME(u_frewind)
+#define u_fscanf U_ICU_ENTRY_POINT_RENAME(u_fscanf)
+#define u_fscanf_u U_ICU_ENTRY_POINT_RENAME(u_fscanf_u)
+#define u_fsetcodepage U_ICU_ENTRY_POINT_RENAME(u_fsetcodepage)
+#define u_fsetlocale U_ICU_ENTRY_POINT_RENAME(u_fsetlocale)
+#define u_fsettransliterator U_ICU_ENTRY_POINT_RENAME(u_fsettransliterator)
+#define u_fstropen U_ICU_ENTRY_POINT_RENAME(u_fstropen)
+#define u_fungetc U_ICU_ENTRY_POINT_RENAME(u_fungetc)
+#define u_getCombiningClass U_ICU_ENTRY_POINT_RENAME(u_getCombiningClass)
+#define u_getDataDirectory U_ICU_ENTRY_POINT_RENAME(u_getDataDirectory)
+#define u_getDataVersion U_ICU_ENTRY_POINT_RENAME(u_getDataVersion)
+#define u_getDefaultConverter U_ICU_ENTRY_POINT_RENAME(u_getDefaultConverter)
+#define u_getFC_NFKC_Closure U_ICU_ENTRY_POINT_RENAME(u_getFC_NFKC_Closure)
+#define u_getISOComment U_ICU_ENTRY_POINT_RENAME(u_getISOComment)
+#define u_getIntPropertyMaxValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyMaxValue)
+#define u_getIntPropertyMinValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyMinValue)
+#define u_getIntPropertyValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyValue)
+#define u_getNumericValue U_ICU_ENTRY_POINT_RENAME(u_getNumericValue)
+#define u_getPropertyEnum U_ICU_ENTRY_POINT_RENAME(u_getPropertyEnum)
+#define u_getPropertyName U_ICU_ENTRY_POINT_RENAME(u_getPropertyName)
+#define u_getPropertyValueEnum U_ICU_ENTRY_POINT_RENAME(u_getPropertyValueEnum)
+#define u_getPropertyValueName U_ICU_ENTRY_POINT_RENAME(u_getPropertyValueName)
+#define u_getUnicodeProperties U_ICU_ENTRY_POINT_RENAME(u_getUnicodeProperties)
+#define u_getUnicodeVersion U_ICU_ENTRY_POINT_RENAME(u_getUnicodeVersion)
+#define u_getVersion U_ICU_ENTRY_POINT_RENAME(u_getVersion)
+#define u_hasBinaryProperty U_ICU_ENTRY_POINT_RENAME(u_hasBinaryProperty)
+#define u_init U_ICU_ENTRY_POINT_RENAME(u_init)
+#define u_isDataOlder U_ICU_ENTRY_POINT_RENAME(u_isDataOlder)
+#define u_isIDIgnorable U_ICU_ENTRY_POINT_RENAME(u_isIDIgnorable)
+#define u_isIDPart U_ICU_ENTRY_POINT_RENAME(u_isIDPart)
+#define u_isIDStart U_ICU_ENTRY_POINT_RENAME(u_isIDStart)
+#define u_isISOControl U_ICU_ENTRY_POINT_RENAME(u_isISOControl)
+#define u_isJavaIDPart U_ICU_ENTRY_POINT_RENAME(u_isJavaIDPart)
+#define u_isJavaIDStart U_ICU_ENTRY_POINT_RENAME(u_isJavaIDStart)
+#define u_isJavaSpaceChar U_ICU_ENTRY_POINT_RENAME(u_isJavaSpaceChar)
+#define u_isMirrored U_ICU_ENTRY_POINT_RENAME(u_isMirrored)
+#define u_isUAlphabetic U_ICU_ENTRY_POINT_RENAME(u_isUAlphabetic)
+#define u_isULowercase U_ICU_ENTRY_POINT_RENAME(u_isULowercase)
+#define u_isUUppercase U_ICU_ENTRY_POINT_RENAME(u_isUUppercase)
+#define u_isUWhiteSpace U_ICU_ENTRY_POINT_RENAME(u_isUWhiteSpace)
+#define u_isWhitespace U_ICU_ENTRY_POINT_RENAME(u_isWhitespace)
+#define u_isalnum U_ICU_ENTRY_POINT_RENAME(u_isalnum)
+#define u_isalnumPOSIX U_ICU_ENTRY_POINT_RENAME(u_isalnumPOSIX)
+#define u_isalpha U_ICU_ENTRY_POINT_RENAME(u_isalpha)
+#define u_isbase U_ICU_ENTRY_POINT_RENAME(u_isbase)
+#define u_isblank U_ICU_ENTRY_POINT_RENAME(u_isblank)
+#define u_iscntrl U_ICU_ENTRY_POINT_RENAME(u_iscntrl)
+#define u_isdefined U_ICU_ENTRY_POINT_RENAME(u_isdefined)
+#define u_isdigit U_ICU_ENTRY_POINT_RENAME(u_isdigit)
+#define u_isgraph U_ICU_ENTRY_POINT_RENAME(u_isgraph)
+#define u_isgraphPOSIX U_ICU_ENTRY_POINT_RENAME(u_isgraphPOSIX)
+#define u_islower U_ICU_ENTRY_POINT_RENAME(u_islower)
+#define u_isprint U_ICU_ENTRY_POINT_RENAME(u_isprint)
+#define u_isprintPOSIX U_ICU_ENTRY_POINT_RENAME(u_isprintPOSIX)
+#define u_ispunct U_ICU_ENTRY_POINT_RENAME(u_ispunct)
+#define u_isspace U_ICU_ENTRY_POINT_RENAME(u_isspace)
+#define u_istitle U_ICU_ENTRY_POINT_RENAME(u_istitle)
+#define u_isupper U_ICU_ENTRY_POINT_RENAME(u_isupper)
+#define u_isxdigit U_ICU_ENTRY_POINT_RENAME(u_isxdigit)
+#define u_lengthOfIdenticalLevelRun U_ICU_ENTRY_POINT_RENAME(u_lengthOfIdenticalLevelRun)
+#define u_locbund_close U_ICU_ENTRY_POINT_RENAME(u_locbund_close)
+#define u_locbund_getNumberFormat U_ICU_ENTRY_POINT_RENAME(u_locbund_getNumberFormat)
+#define u_locbund_init U_ICU_ENTRY_POINT_RENAME(u_locbund_init)
+#define u_memcasecmp U_ICU_ENTRY_POINT_RENAME(u_memcasecmp)
+#define u_memchr U_ICU_ENTRY_POINT_RENAME(u_memchr)
+#define u_memchr32 U_ICU_ENTRY_POINT_RENAME(u_memchr32)
+#define u_memcmp U_ICU_ENTRY_POINT_RENAME(u_memcmp)
+#define u_memcmpCodePointOrder U_ICU_ENTRY_POINT_RENAME(u_memcmpCodePointOrder)
+#define u_memcpy U_ICU_ENTRY_POINT_RENAME(u_memcpy)
+#define u_memmove U_ICU_ENTRY_POINT_RENAME(u_memmove)
+#define u_memrchr U_ICU_ENTRY_POINT_RENAME(u_memrchr)
+#define u_memrchr32 U_ICU_ENTRY_POINT_RENAME(u_memrchr32)
+#define u_memset U_ICU_ENTRY_POINT_RENAME(u_memset)
+#define u_parseMessage U_ICU_ENTRY_POINT_RENAME(u_parseMessage)
+#define u_parseMessageWithError U_ICU_ENTRY_POINT_RENAME(u_parseMessageWithError)
+#define u_printf_parse U_ICU_ENTRY_POINT_RENAME(u_printf_parse)
+#define u_releaseDefaultConverter U_ICU_ENTRY_POINT_RENAME(u_releaseDefaultConverter)
+#define u_scanf_parse U_ICU_ENTRY_POINT_RENAME(u_scanf_parse)
+#define u_setAtomicIncDecFunctions U_ICU_ENTRY_POINT_RENAME(u_setAtomicIncDecFunctions)
+#define u_setDataDirectory U_ICU_ENTRY_POINT_RENAME(u_setDataDirectory)
+#define u_setMemoryFunctions U_ICU_ENTRY_POINT_RENAME(u_setMemoryFunctions)
+#define u_setMutexFunctions U_ICU_ENTRY_POINT_RENAME(u_setMutexFunctions)
+#define u_shapeArabic U_ICU_ENTRY_POINT_RENAME(u_shapeArabic)
+#define u_snprintf U_ICU_ENTRY_POINT_RENAME(u_snprintf)
+#define u_snprintf_u U_ICU_ENTRY_POINT_RENAME(u_snprintf_u)
+#define u_sprintf U_ICU_ENTRY_POINT_RENAME(u_sprintf)
+#define u_sprintf_u U_ICU_ENTRY_POINT_RENAME(u_sprintf_u)
+#define u_sscanf U_ICU_ENTRY_POINT_RENAME(u_sscanf)
+#define u_sscanf_u U_ICU_ENTRY_POINT_RENAME(u_sscanf_u)
+#define u_strCaseCompare U_ICU_ENTRY_POINT_RENAME(u_strCaseCompare)
+#define u_strCompare U_ICU_ENTRY_POINT_RENAME(u_strCompare)
+#define u_strCompareIter U_ICU_ENTRY_POINT_RENAME(u_strCompareIter)
+#define u_strFindFirst U_ICU_ENTRY_POINT_RENAME(u_strFindFirst)
+#define u_strFindLast U_ICU_ENTRY_POINT_RENAME(u_strFindLast)
+#define u_strFoldCase U_ICU_ENTRY_POINT_RENAME(u_strFoldCase)
+#define u_strFromJavaModifiedUTF8WithSub U_ICU_ENTRY_POINT_RENAME(u_strFromJavaModifiedUTF8WithSub)
+#define u_strFromPunycode U_ICU_ENTRY_POINT_RENAME(u_strFromPunycode)
+#define u_strFromUTF32 U_ICU_ENTRY_POINT_RENAME(u_strFromUTF32)
+#define u_strFromUTF32WithSub U_ICU_ENTRY_POINT_RENAME(u_strFromUTF32WithSub)
+#define u_strFromUTF8 U_ICU_ENTRY_POINT_RENAME(u_strFromUTF8)
+#define u_strFromUTF8Lenient U_ICU_ENTRY_POINT_RENAME(u_strFromUTF8Lenient)
+#define u_strFromUTF8WithSub U_ICU_ENTRY_POINT_RENAME(u_strFromUTF8WithSub)
+#define u_strFromWCS U_ICU_ENTRY_POINT_RENAME(u_strFromWCS)
+#define u_strHasMoreChar32Than U_ICU_ENTRY_POINT_RENAME(u_strHasMoreChar32Than)
+#define u_strToJavaModifiedUTF8 U_ICU_ENTRY_POINT_RENAME(u_strToJavaModifiedUTF8)
+#define u_strToLower U_ICU_ENTRY_POINT_RENAME(u_strToLower)
+#define u_strToPunycode U_ICU_ENTRY_POINT_RENAME(u_strToPunycode)
+#define u_strToTitle U_ICU_ENTRY_POINT_RENAME(u_strToTitle)
+#define u_strToUTF32 U_ICU_ENTRY_POINT_RENAME(u_strToUTF32)
+#define u_strToUTF32WithSub U_ICU_ENTRY_POINT_RENAME(u_strToUTF32WithSub)
+#define u_strToUTF8 U_ICU_ENTRY_POINT_RENAME(u_strToUTF8)
+#define u_strToUTF8WithSub U_ICU_ENTRY_POINT_RENAME(u_strToUTF8WithSub)
+#define u_strToUpper U_ICU_ENTRY_POINT_RENAME(u_strToUpper)
+#define u_strToWCS U_ICU_ENTRY_POINT_RENAME(u_strToWCS)
+#define u_strcasecmp U_ICU_ENTRY_POINT_RENAME(u_strcasecmp)
+#define u_strcat U_ICU_ENTRY_POINT_RENAME(u_strcat)
+#define u_strchr U_ICU_ENTRY_POINT_RENAME(u_strchr)
+#define u_strchr32 U_ICU_ENTRY_POINT_RENAME(u_strchr32)
+#define u_strcmp U_ICU_ENTRY_POINT_RENAME(u_strcmp)
+#define u_strcmpCodePointOrder U_ICU_ENTRY_POINT_RENAME(u_strcmpCodePointOrder)
+#define u_strcmpFold U_ICU_ENTRY_POINT_RENAME(u_strcmpFold)
+#define u_strcpy U_ICU_ENTRY_POINT_RENAME(u_strcpy)
+#define u_strcspn U_ICU_ENTRY_POINT_RENAME(u_strcspn)
+#define u_strlen U_ICU_ENTRY_POINT_RENAME(u_strlen)
+#define u_strncasecmp U_ICU_ENTRY_POINT_RENAME(u_strncasecmp)
+#define u_strncat U_ICU_ENTRY_POINT_RENAME(u_strncat)
+#define u_strncmp U_ICU_ENTRY_POINT_RENAME(u_strncmp)
+#define u_strncmpCodePointOrder U_ICU_ENTRY_POINT_RENAME(u_strncmpCodePointOrder)
+#define u_strncpy U_ICU_ENTRY_POINT_RENAME(u_strncpy)
+#define u_strpbrk U_ICU_ENTRY_POINT_RENAME(u_strpbrk)
+#define u_strrchr U_ICU_ENTRY_POINT_RENAME(u_strrchr)
+#define u_strrchr32 U_ICU_ENTRY_POINT_RENAME(u_strrchr32)
+#define u_strrstr U_ICU_ENTRY_POINT_RENAME(u_strrstr)
+#define u_strspn U_ICU_ENTRY_POINT_RENAME(u_strspn)
+#define u_strstr U_ICU_ENTRY_POINT_RENAME(u_strstr)
+#define u_strtok_r U_ICU_ENTRY_POINT_RENAME(u_strtok_r)
+#define u_terminateChars U_ICU_ENTRY_POINT_RENAME(u_terminateChars)
+#define u_terminateUChar32s U_ICU_ENTRY_POINT_RENAME(u_terminateUChar32s)
+#define u_terminateUChars U_ICU_ENTRY_POINT_RENAME(u_terminateUChars)
+#define u_terminateWChars U_ICU_ENTRY_POINT_RENAME(u_terminateWChars)
+#define u_tolower U_ICU_ENTRY_POINT_RENAME(u_tolower)
+#define u_totitle U_ICU_ENTRY_POINT_RENAME(u_totitle)
+#define u_toupper U_ICU_ENTRY_POINT_RENAME(u_toupper)
+#define u_uastrcpy U_ICU_ENTRY_POINT_RENAME(u_uastrcpy)
+#define u_uastrncpy U_ICU_ENTRY_POINT_RENAME(u_uastrncpy)
+#define u_unescape U_ICU_ENTRY_POINT_RENAME(u_unescape)
+#define u_unescapeAt U_ICU_ENTRY_POINT_RENAME(u_unescapeAt)
+#define u_versionFromString U_ICU_ENTRY_POINT_RENAME(u_versionFromString)
+#define u_versionFromUString U_ICU_ENTRY_POINT_RENAME(u_versionFromUString)
+#define u_versionToString U_ICU_ENTRY_POINT_RENAME(u_versionToString)
+#define u_vformatMessage U_ICU_ENTRY_POINT_RENAME(u_vformatMessage)
+#define u_vformatMessageWithError U_ICU_ENTRY_POINT_RENAME(u_vformatMessageWithError)
+#define u_vfprintf U_ICU_ENTRY_POINT_RENAME(u_vfprintf)
+#define u_vfprintf_u U_ICU_ENTRY_POINT_RENAME(u_vfprintf_u)
+#define u_vfscanf U_ICU_ENTRY_POINT_RENAME(u_vfscanf)
+#define u_vfscanf_u U_ICU_ENTRY_POINT_RENAME(u_vfscanf_u)
+#define u_vparseMessage U_ICU_ENTRY_POINT_RENAME(u_vparseMessage)
+#define u_vparseMessageWithError U_ICU_ENTRY_POINT_RENAME(u_vparseMessageWithError)
+#define u_vsnprintf U_ICU_ENTRY_POINT_RENAME(u_vsnprintf)
+#define u_vsnprintf_u U_ICU_ENTRY_POINT_RENAME(u_vsnprintf_u)
+#define u_vsprintf U_ICU_ENTRY_POINT_RENAME(u_vsprintf)
+#define u_vsprintf_u U_ICU_ENTRY_POINT_RENAME(u_vsprintf_u)
+#define u_vsscanf U_ICU_ENTRY_POINT_RENAME(u_vsscanf)
+#define u_vsscanf_u U_ICU_ENTRY_POINT_RENAME(u_vsscanf_u)
+#define u_writeDiff U_ICU_ENTRY_POINT_RENAME(u_writeDiff)
+#define u_writeIdenticalLevelRun U_ICU_ENTRY_POINT_RENAME(u_writeIdenticalLevelRun)
+#define u_writeIdenticalLevelRunTwoChars U_ICU_ENTRY_POINT_RENAME(u_writeIdenticalLevelRunTwoChars)
+#define ubidi_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(ubidi_addPropertyStarts)
+#define ubidi_close U_ICU_ENTRY_POINT_RENAME(ubidi_close)
+#define ubidi_countParagraphs U_ICU_ENTRY_POINT_RENAME(ubidi_countParagraphs)
+#define ubidi_countRuns U_ICU_ENTRY_POINT_RENAME(ubidi_countRuns)
+#define ubidi_getBaseDirection U_ICU_ENTRY_POINT_RENAME(ubidi_getBaseDirection)
+#define ubidi_getClass U_ICU_ENTRY_POINT_RENAME(ubidi_getClass)
+#define ubidi_getClassCallback U_ICU_ENTRY_POINT_RENAME(ubidi_getClassCallback)
+#define ubidi_getCustomizedClass U_ICU_ENTRY_POINT_RENAME(ubidi_getCustomizedClass)
+#define ubidi_getDirection U_ICU_ENTRY_POINT_RENAME(ubidi_getDirection)
+#define ubidi_getJoiningGroup U_ICU_ENTRY_POINT_RENAME(ubidi_getJoiningGroup)
+#define ubidi_getJoiningType U_ICU_ENTRY_POINT_RENAME(ubidi_getJoiningType)
+#define ubidi_getLength U_ICU_ENTRY_POINT_RENAME(ubidi_getLength)
+#define ubidi_getLevelAt U_ICU_ENTRY_POINT_RENAME(ubidi_getLevelAt)
+#define ubidi_getLevels U_ICU_ENTRY_POINT_RENAME(ubidi_getLevels)
+#define ubidi_getLogicalIndex U_ICU_ENTRY_POINT_RENAME(ubidi_getLogicalIndex)
+#define ubidi_getLogicalMap U_ICU_ENTRY_POINT_RENAME(ubidi_getLogicalMap)
+#define ubidi_getLogicalRun U_ICU_ENTRY_POINT_RENAME(ubidi_getLogicalRun)
+#define ubidi_getMaxValue U_ICU_ENTRY_POINT_RENAME(ubidi_getMaxValue)
+#define ubidi_getMemory U_ICU_ENTRY_POINT_RENAME(ubidi_getMemory)
+#define ubidi_getMirror U_ICU_ENTRY_POINT_RENAME(ubidi_getMirror)
+#define ubidi_getParaLevel U_ICU_ENTRY_POINT_RENAME(ubidi_getParaLevel)
+#define ubidi_getParagraph U_ICU_ENTRY_POINT_RENAME(ubidi_getParagraph)
+#define ubidi_getParagraphByIndex U_ICU_ENTRY_POINT_RENAME(ubidi_getParagraphByIndex)
+#define ubidi_getProcessedLength U_ICU_ENTRY_POINT_RENAME(ubidi_getProcessedLength)
+#define ubidi_getReorderingMode U_ICU_ENTRY_POINT_RENAME(ubidi_getReorderingMode)
+#define ubidi_getReorderingOptions U_ICU_ENTRY_POINT_RENAME(ubidi_getReorderingOptions)
+#define ubidi_getResultLength U_ICU_ENTRY_POINT_RENAME(ubidi_getResultLength)
+#define ubidi_getRuns U_ICU_ENTRY_POINT_RENAME(ubidi_getRuns)
+#define ubidi_getSingleton U_ICU_ENTRY_POINT_RENAME(ubidi_getSingleton)
+#define ubidi_getText U_ICU_ENTRY_POINT_RENAME(ubidi_getText)
+#define ubidi_getVisualIndex U_ICU_ENTRY_POINT_RENAME(ubidi_getVisualIndex)
+#define ubidi_getVisualMap U_ICU_ENTRY_POINT_RENAME(ubidi_getVisualMap)
+#define ubidi_getVisualRun U_ICU_ENTRY_POINT_RENAME(ubidi_getVisualRun)
+#define ubidi_invertMap U_ICU_ENTRY_POINT_RENAME(ubidi_invertMap)
+#define ubidi_isBidiControl U_ICU_ENTRY_POINT_RENAME(ubidi_isBidiControl)
+#define ubidi_isInverse U_ICU_ENTRY_POINT_RENAME(ubidi_isInverse)
+#define ubidi_isJoinControl U_ICU_ENTRY_POINT_RENAME(ubidi_isJoinControl)
+#define ubidi_isMirrored U_ICU_ENTRY_POINT_RENAME(ubidi_isMirrored)
+#define ubidi_isOrderParagraphsLTR U_ICU_ENTRY_POINT_RENAME(ubidi_isOrderParagraphsLTR)
+#define ubidi_open U_ICU_ENTRY_POINT_RENAME(ubidi_open)
+#define ubidi_openSized U_ICU_ENTRY_POINT_RENAME(ubidi_openSized)
+#define ubidi_orderParagraphsLTR U_ICU_ENTRY_POINT_RENAME(ubidi_orderParagraphsLTR)
+#define ubidi_reorderLogical U_ICU_ENTRY_POINT_RENAME(ubidi_reorderLogical)
+#define ubidi_reorderVisual U_ICU_ENTRY_POINT_RENAME(ubidi_reorderVisual)
+#define ubidi_setClassCallback U_ICU_ENTRY_POINT_RENAME(ubidi_setClassCallback)
+#define ubidi_setInverse U_ICU_ENTRY_POINT_RENAME(ubidi_setInverse)
+#define ubidi_setLine U_ICU_ENTRY_POINT_RENAME(ubidi_setLine)
+#define ubidi_setPara U_ICU_ENTRY_POINT_RENAME(ubidi_setPara)
+#define ubidi_setReorderingMode U_ICU_ENTRY_POINT_RENAME(ubidi_setReorderingMode)
+#define ubidi_setReorderingOptions U_ICU_ENTRY_POINT_RENAME(ubidi_setReorderingOptions)
+#define ubidi_writeReordered U_ICU_ENTRY_POINT_RENAME(ubidi_writeReordered)
+#define ubidi_writeReverse U_ICU_ENTRY_POINT_RENAME(ubidi_writeReverse)
+#define ublock_getCode U_ICU_ENTRY_POINT_RENAME(ublock_getCode)
+#define ubrk_close U_ICU_ENTRY_POINT_RENAME(ubrk_close)
+#define ubrk_countAvailable U_ICU_ENTRY_POINT_RENAME(ubrk_countAvailable)
+#define ubrk_current U_ICU_ENTRY_POINT_RENAME(ubrk_current)
+#define ubrk_first U_ICU_ENTRY_POINT_RENAME(ubrk_first)
+#define ubrk_following U_ICU_ENTRY_POINT_RENAME(ubrk_following)
+#define ubrk_getAvailable U_ICU_ENTRY_POINT_RENAME(ubrk_getAvailable)
+#define ubrk_getLocaleByType U_ICU_ENTRY_POINT_RENAME(ubrk_getLocaleByType)
+#define ubrk_getRuleStatus U_ICU_ENTRY_POINT_RENAME(ubrk_getRuleStatus)
+#define ubrk_getRuleStatusVec U_ICU_ENTRY_POINT_RENAME(ubrk_getRuleStatusVec)
+#define ubrk_isBoundary U_ICU_ENTRY_POINT_RENAME(ubrk_isBoundary)
+#define ubrk_last U_ICU_ENTRY_POINT_RENAME(ubrk_last)
+#define ubrk_next U_ICU_ENTRY_POINT_RENAME(ubrk_next)
+#define ubrk_open U_ICU_ENTRY_POINT_RENAME(ubrk_open)
+#define ubrk_openRules U_ICU_ENTRY_POINT_RENAME(ubrk_openRules)
+#define ubrk_preceding U_ICU_ENTRY_POINT_RENAME(ubrk_preceding)
+#define ubrk_previous U_ICU_ENTRY_POINT_RENAME(ubrk_previous)
+#define ubrk_safeClone U_ICU_ENTRY_POINT_RENAME(ubrk_safeClone)
+#define ubrk_setText U_ICU_ENTRY_POINT_RENAME(ubrk_setText)
+#define ubrk_setUText U_ICU_ENTRY_POINT_RENAME(ubrk_setUText)
+#define ubrk_swap U_ICU_ENTRY_POINT_RENAME(ubrk_swap)
+#define ucal_add U_ICU_ENTRY_POINT_RENAME(ucal_add)
+#define ucal_clear U_ICU_ENTRY_POINT_RENAME(ucal_clear)
+#define ucal_clearField U_ICU_ENTRY_POINT_RENAME(ucal_clearField)
+#define ucal_clone U_ICU_ENTRY_POINT_RENAME(ucal_clone)
+#define ucal_close U_ICU_ENTRY_POINT_RENAME(ucal_close)
+#define ucal_countAvailable U_ICU_ENTRY_POINT_RENAME(ucal_countAvailable)
+#define ucal_equivalentTo U_ICU_ENTRY_POINT_RENAME(ucal_equivalentTo)
+#define ucal_get U_ICU_ENTRY_POINT_RENAME(ucal_get)
+#define ucal_getAttribute U_ICU_ENTRY_POINT_RENAME(ucal_getAttribute)
+#define ucal_getAvailable U_ICU_ENTRY_POINT_RENAME(ucal_getAvailable)
+#define ucal_getCanonicalTimeZoneID U_ICU_ENTRY_POINT_RENAME(ucal_getCanonicalTimeZoneID)
+#define ucal_getDSTSavings U_ICU_ENTRY_POINT_RENAME(ucal_getDSTSavings)
+#define ucal_getDayOfWeekType U_ICU_ENTRY_POINT_RENAME(ucal_getDayOfWeekType)
+#define ucal_getDefaultTimeZone U_ICU_ENTRY_POINT_RENAME(ucal_getDefaultTimeZone)
+#define ucal_getGregorianChange U_ICU_ENTRY_POINT_RENAME(ucal_getGregorianChange)
+#define ucal_getKeywordValuesForLocale U_ICU_ENTRY_POINT_RENAME(ucal_getKeywordValuesForLocale)
+#define ucal_getLimit U_ICU_ENTRY_POINT_RENAME(ucal_getLimit)
+#define ucal_getLocaleByType U_ICU_ENTRY_POINT_RENAME(ucal_getLocaleByType)
+#define ucal_getMillis U_ICU_ENTRY_POINT_RENAME(ucal_getMillis)
+#define ucal_getNow U_ICU_ENTRY_POINT_RENAME(ucal_getNow)
+#define ucal_getTZDataVersion U_ICU_ENTRY_POINT_RENAME(ucal_getTZDataVersion)
+#define ucal_getTimeZoneDisplayName U_ICU_ENTRY_POINT_RENAME(ucal_getTimeZoneDisplayName)
+#define ucal_getType U_ICU_ENTRY_POINT_RENAME(ucal_getType)
+#define ucal_getWeekendTransition U_ICU_ENTRY_POINT_RENAME(ucal_getWeekendTransition)
+#define ucal_inDaylightTime U_ICU_ENTRY_POINT_RENAME(ucal_inDaylightTime)
+#define ucal_isSet U_ICU_ENTRY_POINT_RENAME(ucal_isSet)
+#define ucal_isWeekend U_ICU_ENTRY_POINT_RENAME(ucal_isWeekend)
+#define ucal_open U_ICU_ENTRY_POINT_RENAME(ucal_open)
+#define ucal_openCountryTimeZones U_ICU_ENTRY_POINT_RENAME(ucal_openCountryTimeZones)
+#define ucal_openTimeZones U_ICU_ENTRY_POINT_RENAME(ucal_openTimeZones)
+#define ucal_roll U_ICU_ENTRY_POINT_RENAME(ucal_roll)
+#define ucal_set U_ICU_ENTRY_POINT_RENAME(ucal_set)
+#define ucal_setAttribute U_ICU_ENTRY_POINT_RENAME(ucal_setAttribute)
+#define ucal_setDate U_ICU_ENTRY_POINT_RENAME(ucal_setDate)
+#define ucal_setDateTime U_ICU_ENTRY_POINT_RENAME(ucal_setDateTime)
+#define ucal_setDefaultTimeZone U_ICU_ENTRY_POINT_RENAME(ucal_setDefaultTimeZone)
+#define ucal_setGregorianChange U_ICU_ENTRY_POINT_RENAME(ucal_setGregorianChange)
+#define ucal_setMillis U_ICU_ENTRY_POINT_RENAME(ucal_setMillis)
+#define ucal_setTimeZone U_ICU_ENTRY_POINT_RENAME(ucal_setTimeZone)
+#define ucase_addCaseClosure U_ICU_ENTRY_POINT_RENAME(ucase_addCaseClosure)
+#define ucase_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(ucase_addPropertyStarts)
+#define ucase_addStringCaseClosure U_ICU_ENTRY_POINT_RENAME(ucase_addStringCaseClosure)
+#define ucase_fold U_ICU_ENTRY_POINT_RENAME(ucase_fold)
+#define ucase_getCaseLocale U_ICU_ENTRY_POINT_RENAME(ucase_getCaseLocale)
+#define ucase_getSingleton U_ICU_ENTRY_POINT_RENAME(ucase_getSingleton)
+#define ucase_getType U_ICU_ENTRY_POINT_RENAME(ucase_getType)
+#define ucase_getTypeOrIgnorable U_ICU_ENTRY_POINT_RENAME(ucase_getTypeOrIgnorable)
+#define ucase_hasBinaryProperty U_ICU_ENTRY_POINT_RENAME(ucase_hasBinaryProperty)
+#define ucase_isCaseSensitive U_ICU_ENTRY_POINT_RENAME(ucase_isCaseSensitive)
+#define ucase_isSoftDotted U_ICU_ENTRY_POINT_RENAME(ucase_isSoftDotted)
+#define ucase_toFullFolding U_ICU_ENTRY_POINT_RENAME(ucase_toFullFolding)
+#define ucase_toFullLower U_ICU_ENTRY_POINT_RENAME(ucase_toFullLower)
+#define ucase_toFullTitle U_ICU_ENTRY_POINT_RENAME(ucase_toFullTitle)
+#define ucase_toFullUpper U_ICU_ENTRY_POINT_RENAME(ucase_toFullUpper)
+#define ucase_tolower U_ICU_ENTRY_POINT_RENAME(ucase_tolower)
+#define ucase_totitle U_ICU_ENTRY_POINT_RENAME(ucase_totitle)
+#define ucase_toupper U_ICU_ENTRY_POINT_RENAME(ucase_toupper)
+#define ucasemap_close U_ICU_ENTRY_POINT_RENAME(ucasemap_close)
+#define ucasemap_getBreakIterator U_ICU_ENTRY_POINT_RENAME(ucasemap_getBreakIterator)
+#define ucasemap_getLocale U_ICU_ENTRY_POINT_RENAME(ucasemap_getLocale)
+#define ucasemap_getOptions U_ICU_ENTRY_POINT_RENAME(ucasemap_getOptions)
+#define ucasemap_open U_ICU_ENTRY_POINT_RENAME(ucasemap_open)
+#define ucasemap_setBreakIterator U_ICU_ENTRY_POINT_RENAME(ucasemap_setBreakIterator)
+#define ucasemap_setLocale U_ICU_ENTRY_POINT_RENAME(ucasemap_setLocale)
+#define ucasemap_setOptions U_ICU_ENTRY_POINT_RENAME(ucasemap_setOptions)
+#define ucasemap_toTitle U_ICU_ENTRY_POINT_RENAME(ucasemap_toTitle)
+#define ucasemap_utf8FoldCase U_ICU_ENTRY_POINT_RENAME(ucasemap_utf8FoldCase)
+#define ucasemap_utf8ToLower U_ICU_ENTRY_POINT_RENAME(ucasemap_utf8ToLower)
+#define ucasemap_utf8ToTitle U_ICU_ENTRY_POINT_RENAME(ucasemap_utf8ToTitle)
+#define ucasemap_utf8ToUpper U_ICU_ENTRY_POINT_RENAME(ucasemap_utf8ToUpper)
+#define ucd_close U_ICU_ENTRY_POINT_RENAME(ucd_close)
+#define ucd_flushCache U_ICU_ENTRY_POINT_RENAME(ucd_flushCache)
+#define ucd_freeCache U_ICU_ENTRY_POINT_RENAME(ucd_freeCache)
+#define ucd_getCollator U_ICU_ENTRY_POINT_RENAME(ucd_getCollator)
+#define ucd_open U_ICU_ENTRY_POINT_RENAME(ucd_open)
+#define uchar_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(uchar_addPropertyStarts)
+#define uchar_swapNames U_ICU_ENTRY_POINT_RENAME(uchar_swapNames)
+#define ucln_cleanupOne U_ICU_ENTRY_POINT_RENAME(ucln_cleanupOne)
+#define ucln_common_registerCleanup U_ICU_ENTRY_POINT_RENAME(ucln_common_registerCleanup)
+#define ucln_i18n_registerCleanup U_ICU_ENTRY_POINT_RENAME(ucln_i18n_registerCleanup)
+#define ucln_io_registerCleanup U_ICU_ENTRY_POINT_RENAME(ucln_io_registerCleanup)
+#define ucln_lib_cleanup U_ICU_ENTRY_POINT_RENAME(ucln_lib_cleanup)
+#define ucln_registerCleanup U_ICU_ENTRY_POINT_RENAME(ucln_registerCleanup)
+#define ucnv_MBCSFromUChar32 U_ICU_ENTRY_POINT_RENAME(ucnv_MBCSFromUChar32)
+#define ucnv_MBCSFromUnicodeWithOffsets U_ICU_ENTRY_POINT_RENAME(ucnv_MBCSFromUnicodeWithOffsets)
+#define ucnv_MBCSGetFilteredUnicodeSetForUnicode U_ICU_ENTRY_POINT_RENAME(ucnv_MBCSGetFilteredUnicodeSetForUnicode)
+#define ucnv_MBCSGetType U_ICU_ENTRY_POINT_RENAME(ucnv_MBCSGetType)
+#define ucnv_MBCSGetUnicodeSetForUnicode U_ICU_ENTRY_POINT_RENAME(ucnv_MBCSGetUnicodeSetForUnicode)
+#define ucnv_MBCSIsLeadByte U_ICU_ENTRY_POINT_RENAME(ucnv_MBCSIsLeadByte)
+#define ucnv_MBCSSimpleGetNextUChar U_ICU_ENTRY_POINT_RENAME(ucnv_MBCSSimpleGetNextUChar)
+#define ucnv_MBCSToUnicodeWithOffsets U_ICU_ENTRY_POINT_RENAME(ucnv_MBCSToUnicodeWithOffsets)
+#define ucnv_bld_countAvailableConverters U_ICU_ENTRY_POINT_RENAME(ucnv_bld_countAvailableConverters)
+#define ucnv_bld_getAvailableConverter U_ICU_ENTRY_POINT_RENAME(ucnv_bld_getAvailableConverter)
+#define ucnv_canCreateConverter U_ICU_ENTRY_POINT_RENAME(ucnv_canCreateConverter)
+#define ucnv_cbFromUWriteBytes U_ICU_ENTRY_POINT_RENAME(ucnv_cbFromUWriteBytes)
+#define ucnv_cbFromUWriteSub U_ICU_ENTRY_POINT_RENAME(ucnv_cbFromUWriteSub)
+#define ucnv_cbFromUWriteUChars U_ICU_ENTRY_POINT_RENAME(ucnv_cbFromUWriteUChars)
+#define ucnv_cbToUWriteSub U_ICU_ENTRY_POINT_RENAME(ucnv_cbToUWriteSub)
+#define ucnv_cbToUWriteUChars U_ICU_ENTRY_POINT_RENAME(ucnv_cbToUWriteUChars)
+#define ucnv_close U_ICU_ENTRY_POINT_RENAME(ucnv_close)
+#define ucnv_compareNames U_ICU_ENTRY_POINT_RENAME(ucnv_compareNames)
+#define ucnv_convert U_ICU_ENTRY_POINT_RENAME(ucnv_convert)
+#define ucnv_convertEx U_ICU_ENTRY_POINT_RENAME(ucnv_convertEx)
+#define ucnv_countAliases U_ICU_ENTRY_POINT_RENAME(ucnv_countAliases)
+#define ucnv_countAvailable U_ICU_ENTRY_POINT_RENAME(ucnv_countAvailable)
+#define ucnv_countStandards U_ICU_ENTRY_POINT_RENAME(ucnv_countStandards)
+#define ucnv_createAlgorithmicConverter U_ICU_ENTRY_POINT_RENAME(ucnv_createAlgorithmicConverter)
+#define ucnv_createConverter U_ICU_ENTRY_POINT_RENAME(ucnv_createConverter)
+#define ucnv_createConverterFromPackage U_ICU_ENTRY_POINT_RENAME(ucnv_createConverterFromPackage)
+#define ucnv_createConverterFromSharedData U_ICU_ENTRY_POINT_RENAME(ucnv_createConverterFromSharedData)
+#define ucnv_detectUnicodeSignature U_ICU_ENTRY_POINT_RENAME(ucnv_detectUnicodeSignature)
+#define ucnv_extContinueMatchFromU U_ICU_ENTRY_POINT_RENAME(ucnv_extContinueMatchFromU)
+#define ucnv_extContinueMatchToU U_ICU_ENTRY_POINT_RENAME(ucnv_extContinueMatchToU)
+#define ucnv_extGetUnicodeSet U_ICU_ENTRY_POINT_RENAME(ucnv_extGetUnicodeSet)
+#define ucnv_extInitialMatchFromU U_ICU_ENTRY_POINT_RENAME(ucnv_extInitialMatchFromU)
+#define ucnv_extInitialMatchToU U_ICU_ENTRY_POINT_RENAME(ucnv_extInitialMatchToU)
+#define ucnv_extSimpleMatchFromU U_ICU_ENTRY_POINT_RENAME(ucnv_extSimpleMatchFromU)
+#define ucnv_extSimpleMatchToU U_ICU_ENTRY_POINT_RENAME(ucnv_extSimpleMatchToU)
+#define ucnv_fixFileSeparator U_ICU_ENTRY_POINT_RENAME(ucnv_fixFileSeparator)
+#define ucnv_flushCache U_ICU_ENTRY_POINT_RENAME(ucnv_flushCache)
+#define ucnv_fromAlgorithmic U_ICU_ENTRY_POINT_RENAME(ucnv_fromAlgorithmic)
+#define ucnv_fromUChars U_ICU_ENTRY_POINT_RENAME(ucnv_fromUChars)
+#define ucnv_fromUCountPending U_ICU_ENTRY_POINT_RENAME(ucnv_fromUCountPending)
+#define ucnv_fromUWriteBytes U_ICU_ENTRY_POINT_RENAME(ucnv_fromUWriteBytes)
+#define ucnv_fromUnicode U_ICU_ENTRY_POINT_RENAME(ucnv_fromUnicode)
+#define ucnv_fromUnicode_UTF8 U_ICU_ENTRY_POINT_RENAME(ucnv_fromUnicode_UTF8)
+#define ucnv_fromUnicode_UTF8_OFFSETS_LOGIC U_ICU_ENTRY_POINT_RENAME(ucnv_fromUnicode_UTF8_OFFSETS_LOGIC)
+#define ucnv_getAlias U_ICU_ENTRY_POINT_RENAME(ucnv_getAlias)
+#define ucnv_getAliases U_ICU_ENTRY_POINT_RENAME(ucnv_getAliases)
+#define ucnv_getAvailableName U_ICU_ENTRY_POINT_RENAME(ucnv_getAvailableName)
+#define ucnv_getCCSID U_ICU_ENTRY_POINT_RENAME(ucnv_getCCSID)
+#define ucnv_getCanonicalName U_ICU_ENTRY_POINT_RENAME(ucnv_getCanonicalName)
+#define ucnv_getCompleteUnicodeSet U_ICU_ENTRY_POINT_RENAME(ucnv_getCompleteUnicodeSet)
+#define ucnv_getDefaultName U_ICU_ENTRY_POINT_RENAME(ucnv_getDefaultName)
+#define ucnv_getDisplayName U_ICU_ENTRY_POINT_RENAME(ucnv_getDisplayName)
+#define ucnv_getFromUCallBack U_ICU_ENTRY_POINT_RENAME(ucnv_getFromUCallBack)
+#define ucnv_getInvalidChars U_ICU_ENTRY_POINT_RENAME(ucnv_getInvalidChars)
+#define ucnv_getInvalidUChars U_ICU_ENTRY_POINT_RENAME(ucnv_getInvalidUChars)
+#define ucnv_getMaxCharSize U_ICU_ENTRY_POINT_RENAME(ucnv_getMaxCharSize)
+#define ucnv_getMinCharSize U_ICU_ENTRY_POINT_RENAME(ucnv_getMinCharSize)
+#define ucnv_getName U_ICU_ENTRY_POINT_RENAME(ucnv_getName)
+#define ucnv_getNextUChar U_ICU_ENTRY_POINT_RENAME(ucnv_getNextUChar)
+#define ucnv_getNonSurrogateUnicodeSet U_ICU_ENTRY_POINT_RENAME(ucnv_getNonSurrogateUnicodeSet)
+#define ucnv_getPlatform U_ICU_ENTRY_POINT_RENAME(ucnv_getPlatform)
+#define ucnv_getStandard U_ICU_ENTRY_POINT_RENAME(ucnv_getStandard)
+#define ucnv_getStandardName U_ICU_ENTRY_POINT_RENAME(ucnv_getStandardName)
+#define ucnv_getStarters U_ICU_ENTRY_POINT_RENAME(ucnv_getStarters)
+#define ucnv_getSubstChars U_ICU_ENTRY_POINT_RENAME(ucnv_getSubstChars)
+#define ucnv_getToUCallBack U_ICU_ENTRY_POINT_RENAME(ucnv_getToUCallBack)
+#define ucnv_getType U_ICU_ENTRY_POINT_RENAME(ucnv_getType)
+#define ucnv_getUnicodeSet U_ICU_ENTRY_POINT_RENAME(ucnv_getUnicodeSet)
+#define ucnv_incrementRefCount U_ICU_ENTRY_POINT_RENAME(ucnv_incrementRefCount)
+#define ucnv_io_countKnownConverters U_ICU_ENTRY_POINT_RENAME(ucnv_io_countKnownConverters)
+#define ucnv_io_getConverterName U_ICU_ENTRY_POINT_RENAME(ucnv_io_getConverterName)
+#define ucnv_io_stripASCIIForCompare U_ICU_ENTRY_POINT_RENAME(ucnv_io_stripASCIIForCompare)
+#define ucnv_io_stripEBCDICForCompare U_ICU_ENTRY_POINT_RENAME(ucnv_io_stripEBCDICForCompare)
+#define ucnv_isAmbiguous U_ICU_ENTRY_POINT_RENAME(ucnv_isAmbiguous)
+#define ucnv_load U_ICU_ENTRY_POINT_RENAME(ucnv_load)
+#define ucnv_loadSharedData U_ICU_ENTRY_POINT_RENAME(ucnv_loadSharedData)
+#define ucnv_open U_ICU_ENTRY_POINT_RENAME(ucnv_open)
+#define ucnv_openAllNames U_ICU_ENTRY_POINT_RENAME(ucnv_openAllNames)
+#define ucnv_openCCSID U_ICU_ENTRY_POINT_RENAME(ucnv_openCCSID)
+#define ucnv_openPackage U_ICU_ENTRY_POINT_RENAME(ucnv_openPackage)
+#define ucnv_openStandardNames U_ICU_ENTRY_POINT_RENAME(ucnv_openStandardNames)
+#define ucnv_openU U_ICU_ENTRY_POINT_RENAME(ucnv_openU)
+#define ucnv_reset U_ICU_ENTRY_POINT_RENAME(ucnv_reset)
+#define ucnv_resetFromUnicode U_ICU_ENTRY_POINT_RENAME(ucnv_resetFromUnicode)
+#define ucnv_resetToUnicode U_ICU_ENTRY_POINT_RENAME(ucnv_resetToUnicode)
+#define ucnv_safeClone U_ICU_ENTRY_POINT_RENAME(ucnv_safeClone)
+#define ucnv_setDefaultName U_ICU_ENTRY_POINT_RENAME(ucnv_setDefaultName)
+#define ucnv_setFallback U_ICU_ENTRY_POINT_RENAME(ucnv_setFallback)
+#define ucnv_setFromUCallBack U_ICU_ENTRY_POINT_RENAME(ucnv_setFromUCallBack)
+#define ucnv_setSubstChars U_ICU_ENTRY_POINT_RENAME(ucnv_setSubstChars)
+#define ucnv_setSubstString U_ICU_ENTRY_POINT_RENAME(ucnv_setSubstString)
+#define ucnv_setToUCallBack U_ICU_ENTRY_POINT_RENAME(ucnv_setToUCallBack)
+#define ucnv_swap U_ICU_ENTRY_POINT_RENAME(ucnv_swap)
+#define ucnv_swapAliases U_ICU_ENTRY_POINT_RENAME(ucnv_swapAliases)
+#define ucnv_toAlgorithmic U_ICU_ENTRY_POINT_RENAME(ucnv_toAlgorithmic)
+#define ucnv_toUChars U_ICU_ENTRY_POINT_RENAME(ucnv_toUChars)
+#define ucnv_toUCountPending U_ICU_ENTRY_POINT_RENAME(ucnv_toUCountPending)
+#define ucnv_toUWriteCodePoint U_ICU_ENTRY_POINT_RENAME(ucnv_toUWriteCodePoint)
+#define ucnv_toUWriteUChars U_ICU_ENTRY_POINT_RENAME(ucnv_toUWriteUChars)
+#define ucnv_toUnicode U_ICU_ENTRY_POINT_RENAME(ucnv_toUnicode)
+#define ucnv_unload U_ICU_ENTRY_POINT_RENAME(ucnv_unload)
+#define ucnv_unloadSharedDataIfReady U_ICU_ENTRY_POINT_RENAME(ucnv_unloadSharedDataIfReady)
+#define ucnv_usesFallback U_ICU_ENTRY_POINT_RENAME(ucnv_usesFallback)
+#define ucnvsel_close U_ICU_ENTRY_POINT_RENAME(ucnvsel_close)
+#define ucnvsel_open U_ICU_ENTRY_POINT_RENAME(ucnvsel_open)
+#define ucnvsel_openFromSerialized U_ICU_ENTRY_POINT_RENAME(ucnvsel_openFromSerialized)
+#define ucnvsel_selectForString U_ICU_ENTRY_POINT_RENAME(ucnvsel_selectForString)
+#define ucnvsel_selectForUTF8 U_ICU_ENTRY_POINT_RENAME(ucnvsel_selectForUTF8)
+#define ucnvsel_serialize U_ICU_ENTRY_POINT_RENAME(ucnvsel_serialize)
+#define ucol_allocWeights U_ICU_ENTRY_POINT_RENAME(ucol_allocWeights)
+#define ucol_assembleTailoringTable U_ICU_ENTRY_POINT_RENAME(ucol_assembleTailoringTable)
+#define ucol_buildPermutationTable U_ICU_ENTRY_POINT_RENAME(ucol_buildPermutationTable)
+#define ucol_calcSortKey U_ICU_ENTRY_POINT_RENAME(ucol_calcSortKey)
+#define ucol_calcSortKeySimpleTertiary U_ICU_ENTRY_POINT_RENAME(ucol_calcSortKeySimpleTertiary)
+#define ucol_cloneBinary U_ICU_ENTRY_POINT_RENAME(ucol_cloneBinary)
+#define ucol_cloneRuleData U_ICU_ENTRY_POINT_RENAME(ucol_cloneRuleData)
+#define ucol_close U_ICU_ENTRY_POINT_RENAME(ucol_close)
+#define ucol_closeElements U_ICU_ENTRY_POINT_RENAME(ucol_closeElements)
+#define ucol_countAvailable U_ICU_ENTRY_POINT_RENAME(ucol_countAvailable)
+#define ucol_createElements U_ICU_ENTRY_POINT_RENAME(ucol_createElements)
+#define ucol_doCE U_ICU_ENTRY_POINT_RENAME(ucol_doCE)
+#define ucol_equal U_ICU_ENTRY_POINT_RENAME(ucol_equal)
+#define ucol_equals U_ICU_ENTRY_POINT_RENAME(ucol_equals)
+#define ucol_findReorderingEntry U_ICU_ENTRY_POINT_RENAME(ucol_findReorderingEntry)
+#define ucol_forceHanImplicit U_ICU_ENTRY_POINT_RENAME(ucol_forceHanImplicit)
+#define ucol_forgetUCA U_ICU_ENTRY_POINT_RENAME(ucol_forgetUCA)
+#define ucol_freeOffsetBuffer U_ICU_ENTRY_POINT_RENAME(ucol_freeOffsetBuffer)
+#define ucol_getAttribute U_ICU_ENTRY_POINT_RENAME(ucol_getAttribute)
+#define ucol_getAttributeOrDefault U_ICU_ENTRY_POINT_RENAME(ucol_getAttributeOrDefault)
+#define ucol_getAvailable U_ICU_ENTRY_POINT_RENAME(ucol_getAvailable)
+#define ucol_getBound U_ICU_ENTRY_POINT_RENAME(ucol_getBound)
+#define ucol_getCEStrengthDifference U_ICU_ENTRY_POINT_RENAME(ucol_getCEStrengthDifference)
+#define ucol_getContractions U_ICU_ENTRY_POINT_RENAME(ucol_getContractions)
+#define ucol_getContractionsAndExpansions U_ICU_ENTRY_POINT_RENAME(ucol_getContractionsAndExpansions)
+#define ucol_getDisplayName U_ICU_ENTRY_POINT_RENAME(ucol_getDisplayName)
+#define ucol_getFirstCE U_ICU_ENTRY_POINT_RENAME(ucol_getFirstCE)
+#define ucol_getFunctionalEquivalent U_ICU_ENTRY_POINT_RENAME(ucol_getFunctionalEquivalent)
+#define ucol_getKeywordValues U_ICU_ENTRY_POINT_RENAME(ucol_getKeywordValues)
+#define ucol_getKeywordValuesForLocale U_ICU_ENTRY_POINT_RENAME(ucol_getKeywordValuesForLocale)
+#define ucol_getKeywords U_ICU_ENTRY_POINT_RENAME(ucol_getKeywords)
+#define ucol_getLeadBytesForReorderCode U_ICU_ENTRY_POINT_RENAME(ucol_getLeadBytesForReorderCode)
+#define ucol_getLocale U_ICU_ENTRY_POINT_RENAME(ucol_getLocale)
+#define ucol_getLocaleByType U_ICU_ENTRY_POINT_RENAME(ucol_getLocaleByType)
+#define ucol_getMaxExpansion U_ICU_ENTRY_POINT_RENAME(ucol_getMaxExpansion)
+#define ucol_getNextCE U_ICU_ENTRY_POINT_RENAME(ucol_getNextCE)
+#define ucol_getOffset U_ICU_ENTRY_POINT_RENAME(ucol_getOffset)
+#define ucol_getPrevCE U_ICU_ENTRY_POINT_RENAME(ucol_getPrevCE)
+#define ucol_getReorderCodes U_ICU_ENTRY_POINT_RENAME(ucol_getReorderCodes)
+#define ucol_getReorderCodesForLeadByte U_ICU_ENTRY_POINT_RENAME(ucol_getReorderCodesForLeadByte)
+#define ucol_getRules U_ICU_ENTRY_POINT_RENAME(ucol_getRules)
+#define ucol_getRulesEx U_ICU_ENTRY_POINT_RENAME(ucol_getRulesEx)
+#define ucol_getShortDefinitionString U_ICU_ENTRY_POINT_RENAME(ucol_getShortDefinitionString)
+#define ucol_getSortKey U_ICU_ENTRY_POINT_RENAME(ucol_getSortKey)
+#define ucol_getSortKeySize U_ICU_ENTRY_POINT_RENAME(ucol_getSortKeySize)
+#define ucol_getSortKeyWithAllocation U_ICU_ENTRY_POINT_RENAME(ucol_getSortKeyWithAllocation)
+#define ucol_getStrength U_ICU_ENTRY_POINT_RENAME(ucol_getStrength)
+#define ucol_getTailoredSet U_ICU_ENTRY_POINT_RENAME(ucol_getTailoredSet)
+#define ucol_getUCAVersion U_ICU_ENTRY_POINT_RENAME(ucol_getUCAVersion)
+#define ucol_getUnsafeSet U_ICU_ENTRY_POINT_RENAME(ucol_getUnsafeSet)
+#define ucol_getVariableTop U_ICU_ENTRY_POINT_RENAME(ucol_getVariableTop)
+#define ucol_getVersion U_ICU_ENTRY_POINT_RENAME(ucol_getVersion)
+#define ucol_greater U_ICU_ENTRY_POINT_RENAME(ucol_greater)
+#define ucol_greaterOrEqual U_ICU_ENTRY_POINT_RENAME(ucol_greaterOrEqual)
+#define ucol_initBuffers U_ICU_ENTRY_POINT_RENAME(ucol_initBuffers)
+#define ucol_initCollator U_ICU_ENTRY_POINT_RENAME(ucol_initCollator)
+#define ucol_initInverseUCA U_ICU_ENTRY_POINT_RENAME(ucol_initInverseUCA)
+#define ucol_initUCA U_ICU_ENTRY_POINT_RENAME(ucol_initUCA)
+#define ucol_inv_getNextCE U_ICU_ENTRY_POINT_RENAME(ucol_inv_getNextCE)
+#define ucol_inv_getPrevCE U_ICU_ENTRY_POINT_RENAME(ucol_inv_getPrevCE)
+#define ucol_isTailored U_ICU_ENTRY_POINT_RENAME(ucol_isTailored)
+#define ucol_keyHashCode U_ICU_ENTRY_POINT_RENAME(ucol_keyHashCode)
+#define ucol_looksLikeCollationBinary U_ICU_ENTRY_POINT_RENAME(ucol_looksLikeCollationBinary)
+#define ucol_mergeSortkeys U_ICU_ENTRY_POINT_RENAME(ucol_mergeSortkeys)
+#define ucol_next U_ICU_ENTRY_POINT_RENAME(ucol_next)
+#define ucol_nextProcessed U_ICU_ENTRY_POINT_RENAME(ucol_nextProcessed)
+#define ucol_nextSortKeyPart U_ICU_ENTRY_POINT_RENAME(ucol_nextSortKeyPart)
+#define ucol_nextWeight U_ICU_ENTRY_POINT_RENAME(ucol_nextWeight)
+#define ucol_normalizeShortDefinitionString U_ICU_ENTRY_POINT_RENAME(ucol_normalizeShortDefinitionString)
+#define ucol_open U_ICU_ENTRY_POINT_RENAME(ucol_open)
+#define ucol_openAvailableLocales U_ICU_ENTRY_POINT_RENAME(ucol_openAvailableLocales)
+#define ucol_openBinary U_ICU_ENTRY_POINT_RENAME(ucol_openBinary)
+#define ucol_openElements U_ICU_ENTRY_POINT_RENAME(ucol_openElements)
+#define ucol_openFromShortString U_ICU_ENTRY_POINT_RENAME(ucol_openFromShortString)
+#define ucol_openRules U_ICU_ENTRY_POINT_RENAME(ucol_openRules)
+#define ucol_openRulesForImport U_ICU_ENTRY_POINT_RENAME(ucol_openRulesForImport)
+#define ucol_open_internal U_ICU_ENTRY_POINT_RENAME(ucol_open_internal)
+#define ucol_prepareShortStringOpen U_ICU_ENTRY_POINT_RENAME(ucol_prepareShortStringOpen)
+#define ucol_previous U_ICU_ENTRY_POINT_RENAME(ucol_previous)
+#define ucol_previousProcessed U_ICU_ENTRY_POINT_RENAME(ucol_previousProcessed)
+#define ucol_primaryOrder U_ICU_ENTRY_POINT_RENAME(ucol_primaryOrder)
+#define ucol_prv_getSpecialCE U_ICU_ENTRY_POINT_RENAME(ucol_prv_getSpecialCE)
+#define ucol_prv_getSpecialPrevCE U_ICU_ENTRY_POINT_RENAME(ucol_prv_getSpecialPrevCE)
+#define ucol_reset U_ICU_ENTRY_POINT_RENAME(ucol_reset)
+#define ucol_restoreVariableTop U_ICU_ENTRY_POINT_RENAME(ucol_restoreVariableTop)
+#define ucol_safeClone U_ICU_ENTRY_POINT_RENAME(ucol_safeClone)
+#define ucol_secondaryOrder U_ICU_ENTRY_POINT_RENAME(ucol_secondaryOrder)
+#define ucol_setAttribute U_ICU_ENTRY_POINT_RENAME(ucol_setAttribute)
+#define ucol_setOffset U_ICU_ENTRY_POINT_RENAME(ucol_setOffset)
+#define ucol_setOptionsFromHeader U_ICU_ENTRY_POINT_RENAME(ucol_setOptionsFromHeader)
+#define ucol_setReorderCodes U_ICU_ENTRY_POINT_RENAME(ucol_setReorderCodes)
+#define ucol_setReqValidLocales U_ICU_ENTRY_POINT_RENAME(ucol_setReqValidLocales)
+#define ucol_setStrength U_ICU_ENTRY_POINT_RENAME(ucol_setStrength)
+#define ucol_setText U_ICU_ENTRY_POINT_RENAME(ucol_setText)
+#define ucol_setVariableTop U_ICU_ENTRY_POINT_RENAME(ucol_setVariableTop)
+#define ucol_strcoll U_ICU_ENTRY_POINT_RENAME(ucol_strcoll)
+#define ucol_strcollIter U_ICU_ENTRY_POINT_RENAME(ucol_strcollIter)
+#define ucol_swap U_ICU_ENTRY_POINT_RENAME(ucol_swap)
+#define ucol_swapBinary U_ICU_ENTRY_POINT_RENAME(ucol_swapBinary)
+#define ucol_swapInverseUCA U_ICU_ENTRY_POINT_RENAME(ucol_swapInverseUCA)
+#define ucol_tertiaryOrder U_ICU_ENTRY_POINT_RENAME(ucol_tertiaryOrder)
+#define ucol_tok_assembleTokenList U_ICU_ENTRY_POINT_RENAME(ucol_tok_assembleTokenList)
+#define ucol_tok_closeTokenList U_ICU_ENTRY_POINT_RENAME(ucol_tok_closeTokenList)
+#define ucol_tok_getNextArgument U_ICU_ENTRY_POINT_RENAME(ucol_tok_getNextArgument)
+#define ucol_tok_getRulesFromBundle U_ICU_ENTRY_POINT_RENAME(ucol_tok_getRulesFromBundle)
+#define ucol_tok_initTokenList U_ICU_ENTRY_POINT_RENAME(ucol_tok_initTokenList)
+#define ucol_tok_parseNextToken U_ICU_ENTRY_POINT_RENAME(ucol_tok_parseNextToken)
+#define ucol_updateInternalState U_ICU_ENTRY_POINT_RENAME(ucol_updateInternalState)
+#define ucsdet_close U_ICU_ENTRY_POINT_RENAME(ucsdet_close)
+#define ucsdet_detect U_ICU_ENTRY_POINT_RENAME(ucsdet_detect)
+#define ucsdet_detectAll U_ICU_ENTRY_POINT_RENAME(ucsdet_detectAll)
+#define ucsdet_enableInputFilter U_ICU_ENTRY_POINT_RENAME(ucsdet_enableInputFilter)
+#define ucsdet_getAllDetectableCharsets U_ICU_ENTRY_POINT_RENAME(ucsdet_getAllDetectableCharsets)
+#define ucsdet_getConfidence U_ICU_ENTRY_POINT_RENAME(ucsdet_getConfidence)
+#define ucsdet_getLanguage U_ICU_ENTRY_POINT_RENAME(ucsdet_getLanguage)
+#define ucsdet_getName U_ICU_ENTRY_POINT_RENAME(ucsdet_getName)
+#define ucsdet_getUChars U_ICU_ENTRY_POINT_RENAME(ucsdet_getUChars)
+#define ucsdet_isInputFilterEnabled U_ICU_ENTRY_POINT_RENAME(ucsdet_isInputFilterEnabled)
+#define ucsdet_open U_ICU_ENTRY_POINT_RENAME(ucsdet_open)
+#define ucsdet_setDeclaredEncoding U_ICU_ENTRY_POINT_RENAME(ucsdet_setDeclaredEncoding)
+#define ucsdet_setText U_ICU_ENTRY_POINT_RENAME(ucsdet_setText)
+#define ucurr_countCurrencies U_ICU_ENTRY_POINT_RENAME(ucurr_countCurrencies)
+#define ucurr_forLocale U_ICU_ENTRY_POINT_RENAME(ucurr_forLocale)
+#define ucurr_forLocaleAndDate U_ICU_ENTRY_POINT_RENAME(ucurr_forLocaleAndDate)
+#define ucurr_getDefaultFractionDigits U_ICU_ENTRY_POINT_RENAME(ucurr_getDefaultFractionDigits)
+#define ucurr_getKeywordValuesForLocale U_ICU_ENTRY_POINT_RENAME(ucurr_getKeywordValuesForLocale)
+#define ucurr_getName U_ICU_ENTRY_POINT_RENAME(ucurr_getName)
+#define ucurr_getPluralName U_ICU_ENTRY_POINT_RENAME(ucurr_getPluralName)
+#define ucurr_getRoundingIncrement U_ICU_ENTRY_POINT_RENAME(ucurr_getRoundingIncrement)
+#define ucurr_openISOCurrencies U_ICU_ENTRY_POINT_RENAME(ucurr_openISOCurrencies)
+#define ucurr_register U_ICU_ENTRY_POINT_RENAME(ucurr_register)
+#define ucurr_unregister U_ICU_ENTRY_POINT_RENAME(ucurr_unregister)
+#define udat_applyPattern U_ICU_ENTRY_POINT_RENAME(udat_applyPattern)
+#define udat_applyPatternRelative U_ICU_ENTRY_POINT_RENAME(udat_applyPatternRelative)
+#define udat_clone U_ICU_ENTRY_POINT_RENAME(udat_clone)
+#define udat_close U_ICU_ENTRY_POINT_RENAME(udat_close)
+#define udat_countAvailable U_ICU_ENTRY_POINT_RENAME(udat_countAvailable)
+#define udat_countSymbols U_ICU_ENTRY_POINT_RENAME(udat_countSymbols)
+#define udat_format U_ICU_ENTRY_POINT_RENAME(udat_format)
+#define udat_get2DigitYearStart U_ICU_ENTRY_POINT_RENAME(udat_get2DigitYearStart)
+#define udat_getAvailable U_ICU_ENTRY_POINT_RENAME(udat_getAvailable)
+#define udat_getCalendar U_ICU_ENTRY_POINT_RENAME(udat_getCalendar)
+#define udat_getLocaleByType U_ICU_ENTRY_POINT_RENAME(udat_getLocaleByType)
+#define udat_getNumberFormat U_ICU_ENTRY_POINT_RENAME(udat_getNumberFormat)
+#define udat_getSymbols U_ICU_ENTRY_POINT_RENAME(udat_getSymbols)
+#define udat_isLenient U_ICU_ENTRY_POINT_RENAME(udat_isLenient)
+#define udat_open U_ICU_ENTRY_POINT_RENAME(udat_open)
+#define udat_parse U_ICU_ENTRY_POINT_RENAME(udat_parse)
+#define udat_parseCalendar U_ICU_ENTRY_POINT_RENAME(udat_parseCalendar)
+#define udat_set2DigitYearStart U_ICU_ENTRY_POINT_RENAME(udat_set2DigitYearStart)
+#define udat_setCalendar U_ICU_ENTRY_POINT_RENAME(udat_setCalendar)
+#define udat_setLenient U_ICU_ENTRY_POINT_RENAME(udat_setLenient)
+#define udat_setNumberFormat U_ICU_ENTRY_POINT_RENAME(udat_setNumberFormat)
+#define udat_setSymbols U_ICU_ENTRY_POINT_RENAME(udat_setSymbols)
+#define udat_toCalendarDateField U_ICU_ENTRY_POINT_RENAME(udat_toCalendarDateField)
+#define udat_toPattern U_ICU_ENTRY_POINT_RENAME(udat_toPattern)
+#define udat_toPatternRelativeDate U_ICU_ENTRY_POINT_RENAME(udat_toPatternRelativeDate)
+#define udat_toPatternRelativeTime U_ICU_ENTRY_POINT_RENAME(udat_toPatternRelativeTime)
+#define udata_checkCommonData U_ICU_ENTRY_POINT_RENAME(udata_checkCommonData)
+#define udata_close U_ICU_ENTRY_POINT_RENAME(udata_close)
+#define udata_closeSwapper U_ICU_ENTRY_POINT_RENAME(udata_closeSwapper)
+#define udata_getHeaderSize U_ICU_ENTRY_POINT_RENAME(udata_getHeaderSize)
+#define udata_getInfo U_ICU_ENTRY_POINT_RENAME(udata_getInfo)
+#define udata_getInfoSize U_ICU_ENTRY_POINT_RENAME(udata_getInfoSize)
+#define udata_getLength U_ICU_ENTRY_POINT_RENAME(udata_getLength)
+#define udata_getMemory U_ICU_ENTRY_POINT_RENAME(udata_getMemory)
+#define udata_getRawMemory U_ICU_ENTRY_POINT_RENAME(udata_getRawMemory)
+#define udata_open U_ICU_ENTRY_POINT_RENAME(udata_open)
+#define udata_openChoice U_ICU_ENTRY_POINT_RENAME(udata_openChoice)
+#define udata_openSwapper U_ICU_ENTRY_POINT_RENAME(udata_openSwapper)
+#define udata_openSwapperForInputData U_ICU_ENTRY_POINT_RENAME(udata_openSwapperForInputData)
+#define udata_printError U_ICU_ENTRY_POINT_RENAME(udata_printError)
+#define udata_readInt16 U_ICU_ENTRY_POINT_RENAME(udata_readInt16)
+#define udata_readInt32 U_ICU_ENTRY_POINT_RENAME(udata_readInt32)
+#define udata_setAppData U_ICU_ENTRY_POINT_RENAME(udata_setAppData)
+#define udata_setCommonData U_ICU_ENTRY_POINT_RENAME(udata_setCommonData)
+#define udata_setFileAccess U_ICU_ENTRY_POINT_RENAME(udata_setFileAccess)
+#define udata_swapDataHeader U_ICU_ENTRY_POINT_RENAME(udata_swapDataHeader)
+#define udata_swapInvStringBlock U_ICU_ENTRY_POINT_RENAME(udata_swapInvStringBlock)
+#define udatpg_addPattern U_ICU_ENTRY_POINT_RENAME(udatpg_addPattern)
+#define udatpg_clone U_ICU_ENTRY_POINT_RENAME(udatpg_clone)
+#define udatpg_close U_ICU_ENTRY_POINT_RENAME(udatpg_close)
+#define udatpg_getAppendItemFormat U_ICU_ENTRY_POINT_RENAME(udatpg_getAppendItemFormat)
+#define udatpg_getAppendItemName U_ICU_ENTRY_POINT_RENAME(udatpg_getAppendItemName)
+#define udatpg_getBaseSkeleton U_ICU_ENTRY_POINT_RENAME(udatpg_getBaseSkeleton)
+#define udatpg_getBestPattern U_ICU_ENTRY_POINT_RENAME(udatpg_getBestPattern)
+#define udatpg_getBestPatternWithOptions U_ICU_ENTRY_POINT_RENAME(udatpg_getBestPatternWithOptions)
+#define udatpg_getDateTimeFormat U_ICU_ENTRY_POINT_RENAME(udatpg_getDateTimeFormat)
+#define udatpg_getDecimal U_ICU_ENTRY_POINT_RENAME(udatpg_getDecimal)
+#define udatpg_getPatternForSkeleton U_ICU_ENTRY_POINT_RENAME(udatpg_getPatternForSkeleton)
+#define udatpg_getSkeleton U_ICU_ENTRY_POINT_RENAME(udatpg_getSkeleton)
+#define udatpg_open U_ICU_ENTRY_POINT_RENAME(udatpg_open)
+#define udatpg_openBaseSkeletons U_ICU_ENTRY_POINT_RENAME(udatpg_openBaseSkeletons)
+#define udatpg_openEmpty U_ICU_ENTRY_POINT_RENAME(udatpg_openEmpty)
+#define udatpg_openSkeletons U_ICU_ENTRY_POINT_RENAME(udatpg_openSkeletons)
+#define udatpg_replaceFieldTypes U_ICU_ENTRY_POINT_RENAME(udatpg_replaceFieldTypes)
+#define udatpg_replaceFieldTypesWithOptions U_ICU_ENTRY_POINT_RENAME(udatpg_replaceFieldTypesWithOptions)
+#define udatpg_setAppendItemFormat U_ICU_ENTRY_POINT_RENAME(udatpg_setAppendItemFormat)
+#define udatpg_setAppendItemName U_ICU_ENTRY_POINT_RENAME(udatpg_setAppendItemName)
+#define udatpg_setDateTimeFormat U_ICU_ENTRY_POINT_RENAME(udatpg_setDateTimeFormat)
+#define udatpg_setDecimal U_ICU_ENTRY_POINT_RENAME(udatpg_setDecimal)
+#define uenum_close U_ICU_ENTRY_POINT_RENAME(uenum_close)
+#define uenum_count U_ICU_ENTRY_POINT_RENAME(uenum_count)
+#define uenum_next U_ICU_ENTRY_POINT_RENAME(uenum_next)
+#define uenum_nextDefault U_ICU_ENTRY_POINT_RENAME(uenum_nextDefault)
+#define uenum_openCharStringsEnumeration U_ICU_ENTRY_POINT_RENAME(uenum_openCharStringsEnumeration)
+#define uenum_openFromStringEnumeration U_ICU_ENTRY_POINT_RENAME(uenum_openFromStringEnumeration)
+#define uenum_reset U_ICU_ENTRY_POINT_RENAME(uenum_reset)
+#define uenum_unext U_ICU_ENTRY_POINT_RENAME(uenum_unext)
+#define uenum_unextDefault U_ICU_ENTRY_POINT_RENAME(uenum_unextDefault)
+#define ufile_close_translit U_ICU_ENTRY_POINT_RENAME(ufile_close_translit)
+#define ufile_fill_uchar_buffer U_ICU_ENTRY_POINT_RENAME(ufile_fill_uchar_buffer)
+#define ufile_flush_io U_ICU_ENTRY_POINT_RENAME(ufile_flush_io)
+#define ufile_flush_translit U_ICU_ENTRY_POINT_RENAME(ufile_flush_translit)
+#define ufile_getch U_ICU_ENTRY_POINT_RENAME(ufile_getch)
+#define ufile_getch32 U_ICU_ENTRY_POINT_RENAME(ufile_getch32)
+#define ufmt_64tou U_ICU_ENTRY_POINT_RENAME(ufmt_64tou)
+#define ufmt_defaultCPToUnicode U_ICU_ENTRY_POINT_RENAME(ufmt_defaultCPToUnicode)
+#define ufmt_digitvalue U_ICU_ENTRY_POINT_RENAME(ufmt_digitvalue)
+#define ufmt_isdigit U_ICU_ENTRY_POINT_RENAME(ufmt_isdigit)
+#define ufmt_ptou U_ICU_ENTRY_POINT_RENAME(ufmt_ptou)
+#define ufmt_uto64 U_ICU_ENTRY_POINT_RENAME(ufmt_uto64)
+#define ufmt_utop U_ICU_ENTRY_POINT_RENAME(ufmt_utop)
+#define uhash_close U_ICU_ENTRY_POINT_RENAME(uhash_close)
+#define uhash_compareCaselessUnicodeString U_ICU_ENTRY_POINT_RENAME(uhash_compareCaselessUnicodeString)
+#define uhash_compareChars U_ICU_ENTRY_POINT_RENAME(uhash_compareChars)
+#define uhash_compareIChars U_ICU_ENTRY_POINT_RENAME(uhash_compareIChars)
+#define uhash_compareLong U_ICU_ENTRY_POINT_RENAME(uhash_compareLong)
+#define uhash_compareUChars U_ICU_ENTRY_POINT_RENAME(uhash_compareUChars)
+#define uhash_compareUnicodeString U_ICU_ENTRY_POINT_RENAME(uhash_compareUnicodeString)
+#define uhash_count U_ICU_ENTRY_POINT_RENAME(uhash_count)
+#define uhash_deleteHashtable U_ICU_ENTRY_POINT_RENAME(uhash_deleteHashtable)
+#define uhash_deleteUObject U_ICU_ENTRY_POINT_RENAME(uhash_deleteUObject)
+#define uhash_deleteUnicodeString U_ICU_ENTRY_POINT_RENAME(uhash_deleteUnicodeString)
+#define uhash_equals U_ICU_ENTRY_POINT_RENAME(uhash_equals)
+#define uhash_find U_ICU_ENTRY_POINT_RENAME(uhash_find)
+#define uhash_freeBlock U_ICU_ENTRY_POINT_RENAME(uhash_freeBlock)
+#define uhash_get U_ICU_ENTRY_POINT_RENAME(uhash_get)
+#define uhash_geti U_ICU_ENTRY_POINT_RENAME(uhash_geti)
+#define uhash_hashCaselessUnicodeString U_ICU_ENTRY_POINT_RENAME(uhash_hashCaselessUnicodeString)
+#define uhash_hashChars U_ICU_ENTRY_POINT_RENAME(uhash_hashChars)
+#define uhash_hashIChars U_ICU_ENTRY_POINT_RENAME(uhash_hashIChars)
+#define uhash_hashLong U_ICU_ENTRY_POINT_RENAME(uhash_hashLong)
+#define uhash_hashUChars U_ICU_ENTRY_POINT_RENAME(uhash_hashUChars)
+#define uhash_hashUCharsN U_ICU_ENTRY_POINT_RENAME(uhash_hashUCharsN)
+#define uhash_hashUnicodeString U_ICU_ENTRY_POINT_RENAME(uhash_hashUnicodeString)
+#define uhash_iget U_ICU_ENTRY_POINT_RENAME(uhash_iget)
+#define uhash_igeti U_ICU_ENTRY_POINT_RENAME(uhash_igeti)
+#define uhash_init U_ICU_ENTRY_POINT_RENAME(uhash_init)
+#define uhash_iput U_ICU_ENTRY_POINT_RENAME(uhash_iput)
+#define uhash_iputi U_ICU_ENTRY_POINT_RENAME(uhash_iputi)
+#define uhash_iremove U_ICU_ENTRY_POINT_RENAME(uhash_iremove)
+#define uhash_iremovei U_ICU_ENTRY_POINT_RENAME(uhash_iremovei)
+#define uhash_nextElement U_ICU_ENTRY_POINT_RENAME(uhash_nextElement)
+#define uhash_open U_ICU_ENTRY_POINT_RENAME(uhash_open)
+#define uhash_openSize U_ICU_ENTRY_POINT_RENAME(uhash_openSize)
+#define uhash_put U_ICU_ENTRY_POINT_RENAME(uhash_put)
+#define uhash_puti U_ICU_ENTRY_POINT_RENAME(uhash_puti)
+#define uhash_remove U_ICU_ENTRY_POINT_RENAME(uhash_remove)
+#define uhash_removeAll U_ICU_ENTRY_POINT_RENAME(uhash_removeAll)
+#define uhash_removeElement U_ICU_ENTRY_POINT_RENAME(uhash_removeElement)
+#define uhash_removei U_ICU_ENTRY_POINT_RENAME(uhash_removei)
+#define uhash_setKeyComparator U_ICU_ENTRY_POINT_RENAME(uhash_setKeyComparator)
+#define uhash_setKeyDeleter U_ICU_ENTRY_POINT_RENAME(uhash_setKeyDeleter)
+#define uhash_setKeyHasher U_ICU_ENTRY_POINT_RENAME(uhash_setKeyHasher)
+#define uhash_setResizePolicy U_ICU_ENTRY_POINT_RENAME(uhash_setResizePolicy)
+#define uhash_setValueComparator U_ICU_ENTRY_POINT_RENAME(uhash_setValueComparator)
+#define uhash_setValueDeleter U_ICU_ENTRY_POINT_RENAME(uhash_setValueDeleter)
+#define uidna_IDNToASCII U_ICU_ENTRY_POINT_RENAME(uidna_IDNToASCII)
+#define uidna_IDNToUnicode U_ICU_ENTRY_POINT_RENAME(uidna_IDNToUnicode)
+#define uidna_close U_ICU_ENTRY_POINT_RENAME(uidna_close)
+#define uidna_compare U_ICU_ENTRY_POINT_RENAME(uidna_compare)
+#define uidna_labelToASCII U_ICU_ENTRY_POINT_RENAME(uidna_labelToASCII)
+#define uidna_labelToASCII_UTF8 U_ICU_ENTRY_POINT_RENAME(uidna_labelToASCII_UTF8)
+#define uidna_labelToUnicode U_ICU_ENTRY_POINT_RENAME(uidna_labelToUnicode)
+#define uidna_labelToUnicodeUTF8 U_ICU_ENTRY_POINT_RENAME(uidna_labelToUnicodeUTF8)
+#define uidna_nameToASCII U_ICU_ENTRY_POINT_RENAME(uidna_nameToASCII)
+#define uidna_nameToASCII_UTF8 U_ICU_ENTRY_POINT_RENAME(uidna_nameToASCII_UTF8)
+#define uidna_nameToUnicode U_ICU_ENTRY_POINT_RENAME(uidna_nameToUnicode)
+#define uidna_nameToUnicodeUTF8 U_ICU_ENTRY_POINT_RENAME(uidna_nameToUnicodeUTF8)
+#define uidna_openUTS46 U_ICU_ENTRY_POINT_RENAME(uidna_openUTS46)
+#define uidna_toASCII U_ICU_ENTRY_POINT_RENAME(uidna_toASCII)
+#define uidna_toUnicode U_ICU_ENTRY_POINT_RENAME(uidna_toUnicode)
+#define uiter_current32 U_ICU_ENTRY_POINT_RENAME(uiter_current32)
+#define uiter_getState U_ICU_ENTRY_POINT_RENAME(uiter_getState)
+#define uiter_next32 U_ICU_ENTRY_POINT_RENAME(uiter_next32)
+#define uiter_previous32 U_ICU_ENTRY_POINT_RENAME(uiter_previous32)
+#define uiter_setCharacterIterator U_ICU_ENTRY_POINT_RENAME(uiter_setCharacterIterator)
+#define uiter_setReplaceable U_ICU_ENTRY_POINT_RENAME(uiter_setReplaceable)
+#define uiter_setState U_ICU_ENTRY_POINT_RENAME(uiter_setState)
+#define uiter_setString U_ICU_ENTRY_POINT_RENAME(uiter_setString)
+#define uiter_setUTF16BE U_ICU_ENTRY_POINT_RENAME(uiter_setUTF16BE)
+#define uiter_setUTF8 U_ICU_ENTRY_POINT_RENAME(uiter_setUTF8)
+#define uldn_close U_ICU_ENTRY_POINT_RENAME(uldn_close)
+#define uldn_getDialectHandling U_ICU_ENTRY_POINT_RENAME(uldn_getDialectHandling)
+#define uldn_getLocale U_ICU_ENTRY_POINT_RENAME(uldn_getLocale)
+#define uldn_keyDisplayName U_ICU_ENTRY_POINT_RENAME(uldn_keyDisplayName)
+#define uldn_keyValueDisplayName U_ICU_ENTRY_POINT_RENAME(uldn_keyValueDisplayName)
+#define uldn_languageDisplayName U_ICU_ENTRY_POINT_RENAME(uldn_languageDisplayName)
+#define uldn_localeDisplayName U_ICU_ENTRY_POINT_RENAME(uldn_localeDisplayName)
+#define uldn_open U_ICU_ENTRY_POINT_RENAME(uldn_open)
+#define uldn_regionDisplayName U_ICU_ENTRY_POINT_RENAME(uldn_regionDisplayName)
+#define uldn_scriptCodeDisplayName U_ICU_ENTRY_POINT_RENAME(uldn_scriptCodeDisplayName)
+#define uldn_scriptDisplayName U_ICU_ENTRY_POINT_RENAME(uldn_scriptDisplayName)
+#define uldn_variantDisplayName U_ICU_ENTRY_POINT_RENAME(uldn_variantDisplayName)
+#define ulist_addItemBeginList U_ICU_ENTRY_POINT_RENAME(ulist_addItemBeginList)
+#define ulist_addItemEndList U_ICU_ENTRY_POINT_RENAME(ulist_addItemEndList)
+#define ulist_close_keyword_values_iterator U_ICU_ENTRY_POINT_RENAME(ulist_close_keyword_values_iterator)
+#define ulist_containsString U_ICU_ENTRY_POINT_RENAME(ulist_containsString)
+#define ulist_count_keyword_values U_ICU_ENTRY_POINT_RENAME(ulist_count_keyword_values)
+#define ulist_createEmptyList U_ICU_ENTRY_POINT_RENAME(ulist_createEmptyList)
+#define ulist_deleteList U_ICU_ENTRY_POINT_RENAME(ulist_deleteList)
+#define ulist_getListFromEnum U_ICU_ENTRY_POINT_RENAME(ulist_getListFromEnum)
+#define ulist_getListSize U_ICU_ENTRY_POINT_RENAME(ulist_getListSize)
+#define ulist_getNext U_ICU_ENTRY_POINT_RENAME(ulist_getNext)
+#define ulist_next_keyword_value U_ICU_ENTRY_POINT_RENAME(ulist_next_keyword_value)
+#define ulist_resetList U_ICU_ENTRY_POINT_RENAME(ulist_resetList)
+#define ulist_reset_keyword_values_iterator U_ICU_ENTRY_POINT_RENAME(ulist_reset_keyword_values_iterator)
+#define uloc_acceptLanguage U_ICU_ENTRY_POINT_RENAME(uloc_acceptLanguage)
+#define uloc_acceptLanguageFromHTTP U_ICU_ENTRY_POINT_RENAME(uloc_acceptLanguageFromHTTP)
+#define uloc_addLikelySubtags U_ICU_ENTRY_POINT_RENAME(uloc_addLikelySubtags)
+#define uloc_canonicalize U_ICU_ENTRY_POINT_RENAME(uloc_canonicalize)
+#define uloc_countAvailable U_ICU_ENTRY_POINT_RENAME(uloc_countAvailable)
+#define uloc_forLanguageTag U_ICU_ENTRY_POINT_RENAME(uloc_forLanguageTag)
+#define uloc_getAvailable U_ICU_ENTRY_POINT_RENAME(uloc_getAvailable)
+#define uloc_getBaseName U_ICU_ENTRY_POINT_RENAME(uloc_getBaseName)
+#define uloc_getCharacterOrientation U_ICU_ENTRY_POINT_RENAME(uloc_getCharacterOrientation)
+#define uloc_getCountry U_ICU_ENTRY_POINT_RENAME(uloc_getCountry)
+#define uloc_getCurrentCountryID U_ICU_ENTRY_POINT_RENAME(uloc_getCurrentCountryID)
+#define uloc_getCurrentLanguageID U_ICU_ENTRY_POINT_RENAME(uloc_getCurrentLanguageID)
+#define uloc_getDefault U_ICU_ENTRY_POINT_RENAME(uloc_getDefault)
+#define uloc_getDisplayCountry U_ICU_ENTRY_POINT_RENAME(uloc_getDisplayCountry)
+#define uloc_getDisplayKeyword U_ICU_ENTRY_POINT_RENAME(uloc_getDisplayKeyword)
+#define uloc_getDisplayKeywordValue U_ICU_ENTRY_POINT_RENAME(uloc_getDisplayKeywordValue)
+#define uloc_getDisplayLanguage U_ICU_ENTRY_POINT_RENAME(uloc_getDisplayLanguage)
+#define uloc_getDisplayName U_ICU_ENTRY_POINT_RENAME(uloc_getDisplayName)
+#define uloc_getDisplayScript U_ICU_ENTRY_POINT_RENAME(uloc_getDisplayScript)
+#define uloc_getDisplayVariant U_ICU_ENTRY_POINT_RENAME(uloc_getDisplayVariant)
+#define uloc_getISO3Country U_ICU_ENTRY_POINT_RENAME(uloc_getISO3Country)
+#define uloc_getISO3Language U_ICU_ENTRY_POINT_RENAME(uloc_getISO3Language)
+#define uloc_getISOCountries U_ICU_ENTRY_POINT_RENAME(uloc_getISOCountries)
+#define uloc_getISOLanguages U_ICU_ENTRY_POINT_RENAME(uloc_getISOLanguages)
+#define uloc_getKeywordValue U_ICU_ENTRY_POINT_RENAME(uloc_getKeywordValue)
+#define uloc_getLCID U_ICU_ENTRY_POINT_RENAME(uloc_getLCID)
+#define uloc_getLanguage U_ICU_ENTRY_POINT_RENAME(uloc_getLanguage)
+#define uloc_getLineOrientation U_ICU_ENTRY_POINT_RENAME(uloc_getLineOrientation)
+#define uloc_getLocaleForLCID U_ICU_ENTRY_POINT_RENAME(uloc_getLocaleForLCID)
+#define uloc_getName U_ICU_ENTRY_POINT_RENAME(uloc_getName)
+#define uloc_getParent U_ICU_ENTRY_POINT_RENAME(uloc_getParent)
+#define uloc_getScript U_ICU_ENTRY_POINT_RENAME(uloc_getScript)
+#define uloc_getTableStringWithFallback U_ICU_ENTRY_POINT_RENAME(uloc_getTableStringWithFallback)
+#define uloc_getVariant U_ICU_ENTRY_POINT_RENAME(uloc_getVariant)
+#define uloc_minimizeSubtags U_ICU_ENTRY_POINT_RENAME(uloc_minimizeSubtags)
+#define uloc_openKeywordList U_ICU_ENTRY_POINT_RENAME(uloc_openKeywordList)
+#define uloc_openKeywords U_ICU_ENTRY_POINT_RENAME(uloc_openKeywords)
+#define uloc_setDefault U_ICU_ENTRY_POINT_RENAME(uloc_setDefault)
+#define uloc_setKeywordValue U_ICU_ENTRY_POINT_RENAME(uloc_setKeywordValue)
+#define uloc_toLanguageTag U_ICU_ENTRY_POINT_RENAME(uloc_toLanguageTag)
+#define ulocdata_close U_ICU_ENTRY_POINT_RENAME(ulocdata_close)
+#define ulocdata_getCLDRVersion U_ICU_ENTRY_POINT_RENAME(ulocdata_getCLDRVersion)
+#define ulocdata_getDelimiter U_ICU_ENTRY_POINT_RENAME(ulocdata_getDelimiter)
+#define ulocdata_getExemplarSet U_ICU_ENTRY_POINT_RENAME(ulocdata_getExemplarSet)
+#define ulocdata_getLocaleDisplayPattern U_ICU_ENTRY_POINT_RENAME(ulocdata_getLocaleDisplayPattern)
+#define ulocdata_getLocaleSeparator U_ICU_ENTRY_POINT_RENAME(ulocdata_getLocaleSeparator)
+#define ulocdata_getMeasurementSystem U_ICU_ENTRY_POINT_RENAME(ulocdata_getMeasurementSystem)
+#define ulocdata_getNoSubstitute U_ICU_ENTRY_POINT_RENAME(ulocdata_getNoSubstitute)
+#define ulocdata_getPaperSize U_ICU_ENTRY_POINT_RENAME(ulocdata_getPaperSize)
+#define ulocdata_open U_ICU_ENTRY_POINT_RENAME(ulocdata_open)
+#define ulocdata_setNoSubstitute U_ICU_ENTRY_POINT_RENAME(ulocdata_setNoSubstitute)
+#define ulocimp_getCountry U_ICU_ENTRY_POINT_RENAME(ulocimp_getCountry)
+#define ulocimp_getLanguage U_ICU_ENTRY_POINT_RENAME(ulocimp_getLanguage)
+#define ulocimp_getScript U_ICU_ENTRY_POINT_RENAME(ulocimp_getScript)
+#define umsg_applyPattern U_ICU_ENTRY_POINT_RENAME(umsg_applyPattern)
+#define umsg_autoQuoteApostrophe U_ICU_ENTRY_POINT_RENAME(umsg_autoQuoteApostrophe)
+#define umsg_clone U_ICU_ENTRY_POINT_RENAME(umsg_clone)
+#define umsg_close U_ICU_ENTRY_POINT_RENAME(umsg_close)
+#define umsg_format U_ICU_ENTRY_POINT_RENAME(umsg_format)
+#define umsg_getLocale U_ICU_ENTRY_POINT_RENAME(umsg_getLocale)
+#define umsg_open U_ICU_ENTRY_POINT_RENAME(umsg_open)
+#define umsg_parse U_ICU_ENTRY_POINT_RENAME(umsg_parse)
+#define umsg_setLocale U_ICU_ENTRY_POINT_RENAME(umsg_setLocale)
+#define umsg_toPattern U_ICU_ENTRY_POINT_RENAME(umsg_toPattern)
+#define umsg_vformat U_ICU_ENTRY_POINT_RENAME(umsg_vformat)
+#define umsg_vparse U_ICU_ENTRY_POINT_RENAME(umsg_vparse)
+#define umtx_atomic_dec U_ICU_ENTRY_POINT_RENAME(umtx_atomic_dec)
+#define umtx_atomic_inc U_ICU_ENTRY_POINT_RENAME(umtx_atomic_inc)
+#define umtx_cleanup U_ICU_ENTRY_POINT_RENAME(umtx_cleanup)
+#define umtx_destroy U_ICU_ENTRY_POINT_RENAME(umtx_destroy)
+#define umtx_init U_ICU_ENTRY_POINT_RENAME(umtx_init)
+#define umtx_lock U_ICU_ENTRY_POINT_RENAME(umtx_lock)
+#define umtx_unlock U_ICU_ENTRY_POINT_RENAME(umtx_unlock)
+#define uniset_getUnicode32Instance U_ICU_ENTRY_POINT_RENAME(uniset_getUnicode32Instance)
+#define unorm2_append U_ICU_ENTRY_POINT_RENAME(unorm2_append)
+#define unorm2_close U_ICU_ENTRY_POINT_RENAME(unorm2_close)
+#define unorm2_getDecomposition U_ICU_ENTRY_POINT_RENAME(unorm2_getDecomposition)
+#define unorm2_getInstance U_ICU_ENTRY_POINT_RENAME(unorm2_getInstance)
+#define unorm2_hasBoundaryAfter U_ICU_ENTRY_POINT_RENAME(unorm2_hasBoundaryAfter)
+#define unorm2_hasBoundaryBefore U_ICU_ENTRY_POINT_RENAME(unorm2_hasBoundaryBefore)
+#define unorm2_isInert U_ICU_ENTRY_POINT_RENAME(unorm2_isInert)
+#define unorm2_isNormalized U_ICU_ENTRY_POINT_RENAME(unorm2_isNormalized)
+#define unorm2_normalize U_ICU_ENTRY_POINT_RENAME(unorm2_normalize)
+#define unorm2_normalizeSecondAndAppend U_ICU_ENTRY_POINT_RENAME(unorm2_normalizeSecondAndAppend)
+#define unorm2_openFiltered U_ICU_ENTRY_POINT_RENAME(unorm2_openFiltered)
+#define unorm2_quickCheck U_ICU_ENTRY_POINT_RENAME(unorm2_quickCheck)
+#define unorm2_spanQuickCheckYes U_ICU_ENTRY_POINT_RENAME(unorm2_spanQuickCheckYes)
+#define unorm2_swap U_ICU_ENTRY_POINT_RENAME(unorm2_swap)
+#define unorm_closeIter U_ICU_ENTRY_POINT_RENAME(unorm_closeIter)
+#define unorm_compare U_ICU_ENTRY_POINT_RENAME(unorm_compare)
+#define unorm_concatenate U_ICU_ENTRY_POINT_RENAME(unorm_concatenate)
+#define unorm_getFCDTrieIndex U_ICU_ENTRY_POINT_RENAME(unorm_getFCDTrieIndex)
+#define unorm_getQuickCheck U_ICU_ENTRY_POINT_RENAME(unorm_getQuickCheck)
+#define unorm_isNormalized U_ICU_ENTRY_POINT_RENAME(unorm_isNormalized)
+#define unorm_isNormalizedWithOptions U_ICU_ENTRY_POINT_RENAME(unorm_isNormalizedWithOptions)
+#define unorm_next U_ICU_ENTRY_POINT_RENAME(unorm_next)
+#define unorm_normalize U_ICU_ENTRY_POINT_RENAME(unorm_normalize)
+#define unorm_openIter U_ICU_ENTRY_POINT_RENAME(unorm_openIter)
+#define unorm_previous U_ICU_ENTRY_POINT_RENAME(unorm_previous)
+#define unorm_quickCheck U_ICU_ENTRY_POINT_RENAME(unorm_quickCheck)
+#define unorm_quickCheckWithOptions U_ICU_ENTRY_POINT_RENAME(unorm_quickCheckWithOptions)
+#define unorm_setIter U_ICU_ENTRY_POINT_RENAME(unorm_setIter)
+#define unum_applyPattern U_ICU_ENTRY_POINT_RENAME(unum_applyPattern)
+#define unum_clone U_ICU_ENTRY_POINT_RENAME(unum_clone)
+#define unum_close U_ICU_ENTRY_POINT_RENAME(unum_close)
+#define unum_countAvailable U_ICU_ENTRY_POINT_RENAME(unum_countAvailable)
+#define unum_format U_ICU_ENTRY_POINT_RENAME(unum_format)
+#define unum_formatDecimal U_ICU_ENTRY_POINT_RENAME(unum_formatDecimal)
+#define unum_formatDouble U_ICU_ENTRY_POINT_RENAME(unum_formatDouble)
+#define unum_formatDoubleCurrency U_ICU_ENTRY_POINT_RENAME(unum_formatDoubleCurrency)
+#define unum_formatInt64 U_ICU_ENTRY_POINT_RENAME(unum_formatInt64)
+#define unum_getAttribute U_ICU_ENTRY_POINT_RENAME(unum_getAttribute)
+#define unum_getAvailable U_ICU_ENTRY_POINT_RENAME(unum_getAvailable)
+#define unum_getDoubleAttribute U_ICU_ENTRY_POINT_RENAME(unum_getDoubleAttribute)
+#define unum_getLocaleByType U_ICU_ENTRY_POINT_RENAME(unum_getLocaleByType)
+#define unum_getSymbol U_ICU_ENTRY_POINT_RENAME(unum_getSymbol)
+#define unum_getTextAttribute U_ICU_ENTRY_POINT_RENAME(unum_getTextAttribute)
+#define unum_open U_ICU_ENTRY_POINT_RENAME(unum_open)
+#define unum_parse U_ICU_ENTRY_POINT_RENAME(unum_parse)
+#define unum_parseDecimal U_ICU_ENTRY_POINT_RENAME(unum_parseDecimal)
+#define unum_parseDouble U_ICU_ENTRY_POINT_RENAME(unum_parseDouble)
+#define unum_parseDoubleCurrency U_ICU_ENTRY_POINT_RENAME(unum_parseDoubleCurrency)
+#define unum_parseInt64 U_ICU_ENTRY_POINT_RENAME(unum_parseInt64)
+#define unum_setAttribute U_ICU_ENTRY_POINT_RENAME(unum_setAttribute)
+#define unum_setDoubleAttribute U_ICU_ENTRY_POINT_RENAME(unum_setDoubleAttribute)
+#define unum_setSymbol U_ICU_ENTRY_POINT_RENAME(unum_setSymbol)
+#define unum_setTextAttribute U_ICU_ENTRY_POINT_RENAME(unum_setTextAttribute)
+#define unum_toPattern U_ICU_ENTRY_POINT_RENAME(unum_toPattern)
+#define uplug_closeLibrary U_ICU_ENTRY_POINT_RENAME(uplug_closeLibrary)
+#define uplug_findLibrary U_ICU_ENTRY_POINT_RENAME(uplug_findLibrary)
+#define uplug_getConfiguration U_ICU_ENTRY_POINT_RENAME(uplug_getConfiguration)
+#define uplug_getContext U_ICU_ENTRY_POINT_RENAME(uplug_getContext)
+#define uplug_getCurrentLevel U_ICU_ENTRY_POINT_RENAME(uplug_getCurrentLevel)
+#define uplug_getLibrary U_ICU_ENTRY_POINT_RENAME(uplug_getLibrary)
+#define uplug_getLibraryName U_ICU_ENTRY_POINT_RENAME(uplug_getLibraryName)
+#define uplug_getPlugInternal U_ICU_ENTRY_POINT_RENAME(uplug_getPlugInternal)
+#define uplug_getPlugLevel U_ICU_ENTRY_POINT_RENAME(uplug_getPlugLevel)
+#define uplug_getPlugLoadStatus U_ICU_ENTRY_POINT_RENAME(uplug_getPlugLoadStatus)
+#define uplug_getPlugName U_ICU_ENTRY_POINT_RENAME(uplug_getPlugName)
+#define uplug_getPluginFile U_ICU_ENTRY_POINT_RENAME(uplug_getPluginFile)
+#define uplug_getSymbolName U_ICU_ENTRY_POINT_RENAME(uplug_getSymbolName)
+#define uplug_init U_ICU_ENTRY_POINT_RENAME(uplug_init)
+#define uplug_loadPlugFromEntrypoint U_ICU_ENTRY_POINT_RENAME(uplug_loadPlugFromEntrypoint)
+#define uplug_loadPlugFromLibrary U_ICU_ENTRY_POINT_RENAME(uplug_loadPlugFromLibrary)
+#define uplug_nextPlug U_ICU_ENTRY_POINT_RENAME(uplug_nextPlug)
+#define uplug_openLibrary U_ICU_ENTRY_POINT_RENAME(uplug_openLibrary)
+#define uplug_removePlug U_ICU_ENTRY_POINT_RENAME(uplug_removePlug)
+#define uplug_setContext U_ICU_ENTRY_POINT_RENAME(uplug_setContext)
+#define uplug_setPlugLevel U_ICU_ENTRY_POINT_RENAME(uplug_setPlugLevel)
+#define uplug_setPlugName U_ICU_ENTRY_POINT_RENAME(uplug_setPlugName)
+#define uplug_setPlugNoUnload U_ICU_ENTRY_POINT_RENAME(uplug_setPlugNoUnload)
+#define upname_swap U_ICU_ENTRY_POINT_RENAME(upname_swap)
+#define uprops_getSource U_ICU_ENTRY_POINT_RENAME(uprops_getSource)
+#define upropsvec_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(upropsvec_addPropertyStarts)
+#define uprv_aestrncpy U_ICU_ENTRY_POINT_RENAME(uprv_aestrncpy)
+#define uprv_asciiFromEbcdic U_ICU_ENTRY_POINT_RENAME(uprv_asciiFromEbcdic)
+#define uprv_asciitolower U_ICU_ENTRY_POINT_RENAME(uprv_asciitolower)
+#define uprv_ceil U_ICU_ENTRY_POINT_RENAME(uprv_ceil)
+#define uprv_cnttab_addContraction U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_addContraction)
+#define uprv_cnttab_changeContraction U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_changeContraction)
+#define uprv_cnttab_changeLastCE U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_changeLastCE)
+#define uprv_cnttab_clone U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_clone)
+#define uprv_cnttab_close U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_close)
+#define uprv_cnttab_constructTable U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_constructTable)
+#define uprv_cnttab_findCE U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_findCE)
+#define uprv_cnttab_findCP U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_findCP)
+#define uprv_cnttab_getCE U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_getCE)
+#define uprv_cnttab_insertContraction U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_insertContraction)
+#define uprv_cnttab_isTailored U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_isTailored)
+#define uprv_cnttab_open U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_open)
+#define uprv_cnttab_setContraction U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_setContraction)
+#define uprv_collIterateAtEnd U_ICU_ENTRY_POINT_RENAME(uprv_collIterateAtEnd)
+#define uprv_compareASCIIPropertyNames U_ICU_ENTRY_POINT_RENAME(uprv_compareASCIIPropertyNames)
+#define uprv_compareEBCDICPropertyNames U_ICU_ENTRY_POINT_RENAME(uprv_compareEBCDICPropertyNames)
+#define uprv_compareInvAscii U_ICU_ENTRY_POINT_RENAME(uprv_compareInvAscii)
+#define uprv_compareInvEbcdic U_ICU_ENTRY_POINT_RENAME(uprv_compareInvEbcdic)
+#define uprv_compareInvEbcdicAsAscii U_ICU_ENTRY_POINT_RENAME(uprv_compareInvEbcdicAsAscii)
+#define uprv_convertToLCID U_ICU_ENTRY_POINT_RENAME(uprv_convertToLCID)
+#define uprv_convertToPosix U_ICU_ENTRY_POINT_RENAME(uprv_convertToPosix)
+#define uprv_copyAscii U_ICU_ENTRY_POINT_RENAME(uprv_copyAscii)
+#define uprv_copyEbcdic U_ICU_ENTRY_POINT_RENAME(uprv_copyEbcdic)
+#define uprv_decContextClearStatus U_ICU_ENTRY_POINT_RENAME(uprv_decContextClearStatus)
+#define uprv_decContextDefault U_ICU_ENTRY_POINT_RENAME(uprv_decContextDefault)
+#define uprv_decContextGetRounding U_ICU_ENTRY_POINT_RENAME(uprv_decContextGetRounding)
+#define uprv_decContextGetStatus U_ICU_ENTRY_POINT_RENAME(uprv_decContextGetStatus)
+#define uprv_decContextRestoreStatus U_ICU_ENTRY_POINT_RENAME(uprv_decContextRestoreStatus)
+#define uprv_decContextSaveStatus U_ICU_ENTRY_POINT_RENAME(uprv_decContextSaveStatus)
+#define uprv_decContextSetRounding U_ICU_ENTRY_POINT_RENAME(uprv_decContextSetRounding)
+#define uprv_decContextSetStatus U_ICU_ENTRY_POINT_RENAME(uprv_decContextSetStatus)
+#define uprv_decContextSetStatusFromString U_ICU_ENTRY_POINT_RENAME(uprv_decContextSetStatusFromString)
+#define uprv_decContextSetStatusFromStringQuiet U_ICU_ENTRY_POINT_RENAME(uprv_decContextSetStatusFromStringQuiet)
+#define uprv_decContextSetStatusQuiet U_ICU_ENTRY_POINT_RENAME(uprv_decContextSetStatusQuiet)
+#define uprv_decContextStatusToString U_ICU_ENTRY_POINT_RENAME(uprv_decContextStatusToString)
+#define uprv_decContextTestEndian U_ICU_ENTRY_POINT_RENAME(uprv_decContextTestEndian)
+#define uprv_decContextTestSavedStatus U_ICU_ENTRY_POINT_RENAME(uprv_decContextTestSavedStatus)
+#define uprv_decContextTestStatus U_ICU_ENTRY_POINT_RENAME(uprv_decContextTestStatus)
+#define uprv_decContextZeroStatus U_ICU_ENTRY_POINT_RENAME(uprv_decContextZeroStatus)
+#define uprv_decNumberAbs U_ICU_ENTRY_POINT_RENAME(uprv_decNumberAbs)
+#define uprv_decNumberAdd U_ICU_ENTRY_POINT_RENAME(uprv_decNumberAdd)
+#define uprv_decNumberAnd U_ICU_ENTRY_POINT_RENAME(uprv_decNumberAnd)
+#define uprv_decNumberClass U_ICU_ENTRY_POINT_RENAME(uprv_decNumberClass)
+#define uprv_decNumberClassToString U_ICU_ENTRY_POINT_RENAME(uprv_decNumberClassToString)
+#define uprv_decNumberCompare U_ICU_ENTRY_POINT_RENAME(uprv_decNumberCompare)
+#define uprv_decNumberCompareSignal U_ICU_ENTRY_POINT_RENAME(uprv_decNumberCompareSignal)
+#define uprv_decNumberCompareTotal U_ICU_ENTRY_POINT_RENAME(uprv_decNumberCompareTotal)
+#define uprv_decNumberCompareTotalMag U_ICU_ENTRY_POINT_RENAME(uprv_decNumberCompareTotalMag)
+#define uprv_decNumberCopy U_ICU_ENTRY_POINT_RENAME(uprv_decNumberCopy)
+#define uprv_decNumberCopyAbs U_ICU_ENTRY_POINT_RENAME(uprv_decNumberCopyAbs)
+#define uprv_decNumberCopyNegate U_ICU_ENTRY_POINT_RENAME(uprv_decNumberCopyNegate)
+#define uprv_decNumberCopySign U_ICU_ENTRY_POINT_RENAME(uprv_decNumberCopySign)
+#define uprv_decNumberDivide U_ICU_ENTRY_POINT_RENAME(uprv_decNumberDivide)
+#define uprv_decNumberDivideInteger U_ICU_ENTRY_POINT_RENAME(uprv_decNumberDivideInteger)
+#define uprv_decNumberExp U_ICU_ENTRY_POINT_RENAME(uprv_decNumberExp)
+#define uprv_decNumberFMA U_ICU_ENTRY_POINT_RENAME(uprv_decNumberFMA)
+#define uprv_decNumberFromInt32 U_ICU_ENTRY_POINT_RENAME(uprv_decNumberFromInt32)
+#define uprv_decNumberFromString U_ICU_ENTRY_POINT_RENAME(uprv_decNumberFromString)
+#define uprv_decNumberFromUInt32 U_ICU_ENTRY_POINT_RENAME(uprv_decNumberFromUInt32)
+#define uprv_decNumberGetBCD U_ICU_ENTRY_POINT_RENAME(uprv_decNumberGetBCD)
+#define uprv_decNumberInvert U_ICU_ENTRY_POINT_RENAME(uprv_decNumberInvert)
+#define uprv_decNumberIsNormal U_ICU_ENTRY_POINT_RENAME(uprv_decNumberIsNormal)
+#define uprv_decNumberIsSubnormal U_ICU_ENTRY_POINT_RENAME(uprv_decNumberIsSubnormal)
+#define uprv_decNumberLn U_ICU_ENTRY_POINT_RENAME(uprv_decNumberLn)
+#define uprv_decNumberLog10 U_ICU_ENTRY_POINT_RENAME(uprv_decNumberLog10)
+#define uprv_decNumberLogB U_ICU_ENTRY_POINT_RENAME(uprv_decNumberLogB)
+#define uprv_decNumberMax U_ICU_ENTRY_POINT_RENAME(uprv_decNumberMax)
+#define uprv_decNumberMaxMag U_ICU_ENTRY_POINT_RENAME(uprv_decNumberMaxMag)
+#define uprv_decNumberMin U_ICU_ENTRY_POINT_RENAME(uprv_decNumberMin)
+#define uprv_decNumberMinMag U_ICU_ENTRY_POINT_RENAME(uprv_decNumberMinMag)
+#define uprv_decNumberMinus U_ICU_ENTRY_POINT_RENAME(uprv_decNumberMinus)
+#define uprv_decNumberMultiply U_ICU_ENTRY_POINT_RENAME(uprv_decNumberMultiply)
+#define uprv_decNumberNextMinus U_ICU_ENTRY_POINT_RENAME(uprv_decNumberNextMinus)
+#define uprv_decNumberNextPlus U_ICU_ENTRY_POINT_RENAME(uprv_decNumberNextPlus)
+#define uprv_decNumberNextToward U_ICU_ENTRY_POINT_RENAME(uprv_decNumberNextToward)
+#define uprv_decNumberNormalize U_ICU_ENTRY_POINT_RENAME(uprv_decNumberNormalize)
+#define uprv_decNumberOr U_ICU_ENTRY_POINT_RENAME(uprv_decNumberOr)
+#define uprv_decNumberPlus U_ICU_ENTRY_POINT_RENAME(uprv_decNumberPlus)
+#define uprv_decNumberPower U_ICU_ENTRY_POINT_RENAME(uprv_decNumberPower)
+#define uprv_decNumberQuantize U_ICU_ENTRY_POINT_RENAME(uprv_decNumberQuantize)
+#define uprv_decNumberReduce U_ICU_ENTRY_POINT_RENAME(uprv_decNumberReduce)
+#define uprv_decNumberRemainder U_ICU_ENTRY_POINT_RENAME(uprv_decNumberRemainder)
+#define uprv_decNumberRemainderNear U_ICU_ENTRY_POINT_RENAME(uprv_decNumberRemainderNear)
+#define uprv_decNumberRescale U_ICU_ENTRY_POINT_RENAME(uprv_decNumberRescale)
+#define uprv_decNumberRotate U_ICU_ENTRY_POINT_RENAME(uprv_decNumberRotate)
+#define uprv_decNumberSameQuantum U_ICU_ENTRY_POINT_RENAME(uprv_decNumberSameQuantum)
+#define uprv_decNumberScaleB U_ICU_ENTRY_POINT_RENAME(uprv_decNumberScaleB)
+#define uprv_decNumberSetBCD U_ICU_ENTRY_POINT_RENAME(uprv_decNumberSetBCD)
+#define uprv_decNumberShift U_ICU_ENTRY_POINT_RENAME(uprv_decNumberShift)
+#define uprv_decNumberSquareRoot U_ICU_ENTRY_POINT_RENAME(uprv_decNumberSquareRoot)
+#define uprv_decNumberSubtract U_ICU_ENTRY_POINT_RENAME(uprv_decNumberSubtract)
+#define uprv_decNumberToEngString U_ICU_ENTRY_POINT_RENAME(uprv_decNumberToEngString)
+#define uprv_decNumberToInt32 U_ICU_ENTRY_POINT_RENAME(uprv_decNumberToInt32)
+#define uprv_decNumberToIntegralExact U_ICU_ENTRY_POINT_RENAME(uprv_decNumberToIntegralExact)
+#define uprv_decNumberToIntegralValue U_ICU_ENTRY_POINT_RENAME(uprv_decNumberToIntegralValue)
+#define uprv_decNumberToString U_ICU_ENTRY_POINT_RENAME(uprv_decNumberToString)
+#define uprv_decNumberToUInt32 U_ICU_ENTRY_POINT_RENAME(uprv_decNumberToUInt32)
+#define uprv_decNumberTrim U_ICU_ENTRY_POINT_RENAME(uprv_decNumberTrim)
+#define uprv_decNumberVersion U_ICU_ENTRY_POINT_RENAME(uprv_decNumberVersion)
+#define uprv_decNumberXor U_ICU_ENTRY_POINT_RENAME(uprv_decNumberXor)
+#define uprv_decNumberZero U_ICU_ENTRY_POINT_RENAME(uprv_decNumberZero)
+#define uprv_delete_collIterate U_ICU_ENTRY_POINT_RENAME(uprv_delete_collIterate)
+#define uprv_dl_close U_ICU_ENTRY_POINT_RENAME(uprv_dl_close)
+#define uprv_dl_open U_ICU_ENTRY_POINT_RENAME(uprv_dl_open)
+#define uprv_dl_sym U_ICU_ENTRY_POINT_RENAME(uprv_dl_sym)
+#define uprv_eastrncpy U_ICU_ENTRY_POINT_RENAME(uprv_eastrncpy)
+#define uprv_ebcdicFromAscii U_ICU_ENTRY_POINT_RENAME(uprv_ebcdicFromAscii)
+#define uprv_ebcdictolower U_ICU_ENTRY_POINT_RENAME(uprv_ebcdictolower)
+#define uprv_fabs U_ICU_ENTRY_POINT_RENAME(uprv_fabs)
+#define uprv_floor U_ICU_ENTRY_POINT_RENAME(uprv_floor)
+#define uprv_fmax U_ICU_ENTRY_POINT_RENAME(uprv_fmax)
+#define uprv_fmin U_ICU_ENTRY_POINT_RENAME(uprv_fmin)
+#define uprv_fmod U_ICU_ENTRY_POINT_RENAME(uprv_fmod)
+#define uprv_free U_ICU_ENTRY_POINT_RENAME(uprv_free)
+#define uprv_getCharNameCharacters U_ICU_ENTRY_POINT_RENAME(uprv_getCharNameCharacters)
+#define uprv_getDefaultCodepage U_ICU_ENTRY_POINT_RENAME(uprv_getDefaultCodepage)
+#define uprv_getDefaultLocaleID U_ICU_ENTRY_POINT_RENAME(uprv_getDefaultLocaleID)
+#define uprv_getInfinity U_ICU_ENTRY_POINT_RENAME(uprv_getInfinity)
+#define uprv_getMaxCharNameLength U_ICU_ENTRY_POINT_RENAME(uprv_getMaxCharNameLength)
+#define uprv_getMaxValues U_ICU_ENTRY_POINT_RENAME(uprv_getMaxValues)
+#define uprv_getNaN U_ICU_ENTRY_POINT_RENAME(uprv_getNaN)
+#define uprv_getRawUTCtime U_ICU_ENTRY_POINT_RENAME(uprv_getRawUTCtime)
+#define uprv_getStaticCurrencyName U_ICU_ENTRY_POINT_RENAME(uprv_getStaticCurrencyName)
+#define uprv_getUTCtime U_ICU_ENTRY_POINT_RENAME(uprv_getUTCtime)
+#define uprv_haveProperties U_ICU_ENTRY_POINT_RENAME(uprv_haveProperties)
+#define uprv_init_collIterate U_ICU_ENTRY_POINT_RENAME(uprv_init_collIterate)
+#define uprv_init_pce U_ICU_ENTRY_POINT_RENAME(uprv_init_pce)
+#define uprv_int32Comparator U_ICU_ENTRY_POINT_RENAME(uprv_int32Comparator)
+#define uprv_isInfinite U_ICU_ENTRY_POINT_RENAME(uprv_isInfinite)
+#define uprv_isInvariantString U_ICU_ENTRY_POINT_RENAME(uprv_isInvariantString)
+#define uprv_isInvariantUString U_ICU_ENTRY_POINT_RENAME(uprv_isInvariantUString)
+#define uprv_isNaN U_ICU_ENTRY_POINT_RENAME(uprv_isNaN)
+#define uprv_isNegativeInfinity U_ICU_ENTRY_POINT_RENAME(uprv_isNegativeInfinity)
+#define uprv_isPositiveInfinity U_ICU_ENTRY_POINT_RENAME(uprv_isPositiveInfinity)
+#define uprv_isRuleWhiteSpace U_ICU_ENTRY_POINT_RENAME(uprv_isRuleWhiteSpace)
+#define uprv_itou U_ICU_ENTRY_POINT_RENAME(uprv_itou)
+#define uprv_log U_ICU_ENTRY_POINT_RENAME(uprv_log)
+#define uprv_malloc U_ICU_ENTRY_POINT_RENAME(uprv_malloc)
+#define uprv_mapFile U_ICU_ENTRY_POINT_RENAME(uprv_mapFile)
+#define uprv_max U_ICU_ENTRY_POINT_RENAME(uprv_max)
+#define uprv_maxMantissa U_ICU_ENTRY_POINT_RENAME(uprv_maxMantissa)
+#define uprv_maximumPtr U_ICU_ENTRY_POINT_RENAME(uprv_maximumPtr)
+#define uprv_min U_ICU_ENTRY_POINT_RENAME(uprv_min)
+#define uprv_modf U_ICU_ENTRY_POINT_RENAME(uprv_modf)
+#define uprv_new_collIterate U_ICU_ENTRY_POINT_RENAME(uprv_new_collIterate)
+#define uprv_openRuleWhiteSpaceSet U_ICU_ENTRY_POINT_RENAME(uprv_openRuleWhiteSpaceSet)
+#define uprv_parseCurrency U_ICU_ENTRY_POINT_RENAME(uprv_parseCurrency)
+#define uprv_pathIsAbsolute U_ICU_ENTRY_POINT_RENAME(uprv_pathIsAbsolute)
+#define uprv_pow U_ICU_ENTRY_POINT_RENAME(uprv_pow)
+#define uprv_pow10 U_ICU_ENTRY_POINT_RENAME(uprv_pow10)
+#define uprv_realloc U_ICU_ENTRY_POINT_RENAME(uprv_realloc)
+#define uprv_round U_ICU_ENTRY_POINT_RENAME(uprv_round)
+#define uprv_sortArray U_ICU_ENTRY_POINT_RENAME(uprv_sortArray)
+#define uprv_strCompare U_ICU_ENTRY_POINT_RENAME(uprv_strCompare)
+#define uprv_strdup U_ICU_ENTRY_POINT_RENAME(uprv_strdup)
+#define uprv_strndup U_ICU_ENTRY_POINT_RENAME(uprv_strndup)
+#define uprv_syntaxError U_ICU_ENTRY_POINT_RENAME(uprv_syntaxError)
+#define uprv_timezone U_ICU_ENTRY_POINT_RENAME(uprv_timezone)
+#define uprv_toupper U_ICU_ENTRY_POINT_RENAME(uprv_toupper)
+#define uprv_trunc U_ICU_ENTRY_POINT_RENAME(uprv_trunc)
+#define uprv_tzname U_ICU_ENTRY_POINT_RENAME(uprv_tzname)
+#define uprv_tzset U_ICU_ENTRY_POINT_RENAME(uprv_tzset)
+#define uprv_uca_addAnElement U_ICU_ENTRY_POINT_RENAME(uprv_uca_addAnElement)
+#define uprv_uca_assembleTable U_ICU_ENTRY_POINT_RENAME(uprv_uca_assembleTable)
+#define uprv_uca_canonicalClosure U_ICU_ENTRY_POINT_RENAME(uprv_uca_canonicalClosure)
+#define uprv_uca_closeTempTable U_ICU_ENTRY_POINT_RENAME(uprv_uca_closeTempTable)
+#define uprv_uca_getCodePointFromRaw U_ICU_ENTRY_POINT_RENAME(uprv_uca_getCodePointFromRaw)
+#define uprv_uca_getImplicitFromRaw U_ICU_ENTRY_POINT_RENAME(uprv_uca_getImplicitFromRaw)
+#define uprv_uca_getRawFromCodePoint U_ICU_ENTRY_POINT_RENAME(uprv_uca_getRawFromCodePoint)
+#define uprv_uca_getRawFromImplicit U_ICU_ENTRY_POINT_RENAME(uprv_uca_getRawFromImplicit)
+#define uprv_uca_initImplicitConstants U_ICU_ENTRY_POINT_RENAME(uprv_uca_initImplicitConstants)
+#define uprv_uca_initTempTable U_ICU_ENTRY_POINT_RENAME(uprv_uca_initTempTable)
+#define uprv_uint16Comparator U_ICU_ENTRY_POINT_RENAME(uprv_uint16Comparator)
+#define uprv_uint32Comparator U_ICU_ENTRY_POINT_RENAME(uprv_uint32Comparator)
+#define uprv_unmapFile U_ICU_ENTRY_POINT_RENAME(uprv_unmapFile)
+#define upvec_cloneArray U_ICU_ENTRY_POINT_RENAME(upvec_cloneArray)
+#define upvec_close U_ICU_ENTRY_POINT_RENAME(upvec_close)
+#define upvec_compact U_ICU_ENTRY_POINT_RENAME(upvec_compact)
+#define upvec_compactToUTrie2Handler U_ICU_ENTRY_POINT_RENAME(upvec_compactToUTrie2Handler)
+#define upvec_compactToUTrie2WithRowIndexes U_ICU_ENTRY_POINT_RENAME(upvec_compactToUTrie2WithRowIndexes)
+#define upvec_getArray U_ICU_ENTRY_POINT_RENAME(upvec_getArray)
+#define upvec_getRow U_ICU_ENTRY_POINT_RENAME(upvec_getRow)
+#define upvec_getValue U_ICU_ENTRY_POINT_RENAME(upvec_getValue)
+#define upvec_open U_ICU_ENTRY_POINT_RENAME(upvec_open)
+#define upvec_setValue U_ICU_ENTRY_POINT_RENAME(upvec_setValue)
+#define uregex_appendReplacement U_ICU_ENTRY_POINT_RENAME(uregex_appendReplacement)
+#define uregex_appendReplacementUText U_ICU_ENTRY_POINT_RENAME(uregex_appendReplacementUText)
+#define uregex_appendTail U_ICU_ENTRY_POINT_RENAME(uregex_appendTail)
+#define uregex_appendTailUText U_ICU_ENTRY_POINT_RENAME(uregex_appendTailUText)
+#define uregex_clone U_ICU_ENTRY_POINT_RENAME(uregex_clone)
+#define uregex_close U_ICU_ENTRY_POINT_RENAME(uregex_close)
+#define uregex_end U_ICU_ENTRY_POINT_RENAME(uregex_end)
+#define uregex_end64 U_ICU_ENTRY_POINT_RENAME(uregex_end64)
+#define uregex_find U_ICU_ENTRY_POINT_RENAME(uregex_find)
+#define uregex_find64 U_ICU_ENTRY_POINT_RENAME(uregex_find64)
+#define uregex_findNext U_ICU_ENTRY_POINT_RENAME(uregex_findNext)
+#define uregex_flags U_ICU_ENTRY_POINT_RENAME(uregex_flags)
+#define uregex_getFindProgressCallback U_ICU_ENTRY_POINT_RENAME(uregex_getFindProgressCallback)
+#define uregex_getMatchCallback U_ICU_ENTRY_POINT_RENAME(uregex_getMatchCallback)
+#define uregex_getStackLimit U_ICU_ENTRY_POINT_RENAME(uregex_getStackLimit)
+#define uregex_getText U_ICU_ENTRY_POINT_RENAME(uregex_getText)
+#define uregex_getTimeLimit U_ICU_ENTRY_POINT_RENAME(uregex_getTimeLimit)
+#define uregex_getUText U_ICU_ENTRY_POINT_RENAME(uregex_getUText)
+#define uregex_group U_ICU_ENTRY_POINT_RENAME(uregex_group)
+#define uregex_groupCount U_ICU_ENTRY_POINT_RENAME(uregex_groupCount)
+#define uregex_groupUText U_ICU_ENTRY_POINT_RENAME(uregex_groupUText)
+#define uregex_groupUTextDeep U_ICU_ENTRY_POINT_RENAME(uregex_groupUTextDeep)
+#define uregex_hasAnchoringBounds U_ICU_ENTRY_POINT_RENAME(uregex_hasAnchoringBounds)
+#define uregex_hasTransparentBounds U_ICU_ENTRY_POINT_RENAME(uregex_hasTransparentBounds)
+#define uregex_hitEnd U_ICU_ENTRY_POINT_RENAME(uregex_hitEnd)
+#define uregex_lookingAt U_ICU_ENTRY_POINT_RENAME(uregex_lookingAt)
+#define uregex_lookingAt64 U_ICU_ENTRY_POINT_RENAME(uregex_lookingAt64)
+#define uregex_matches U_ICU_ENTRY_POINT_RENAME(uregex_matches)
+#define uregex_matches64 U_ICU_ENTRY_POINT_RENAME(uregex_matches64)
+#define uregex_open U_ICU_ENTRY_POINT_RENAME(uregex_open)
+#define uregex_openC U_ICU_ENTRY_POINT_RENAME(uregex_openC)
+#define uregex_openUText U_ICU_ENTRY_POINT_RENAME(uregex_openUText)
+#define uregex_pattern U_ICU_ENTRY_POINT_RENAME(uregex_pattern)
+#define uregex_patternUText U_ICU_ENTRY_POINT_RENAME(uregex_patternUText)
+#define uregex_regionEnd U_ICU_ENTRY_POINT_RENAME(uregex_regionEnd)
+#define uregex_regionEnd64 U_ICU_ENTRY_POINT_RENAME(uregex_regionEnd64)
+#define uregex_regionStart U_ICU_ENTRY_POINT_RENAME(uregex_regionStart)
+#define uregex_regionStart64 U_ICU_ENTRY_POINT_RENAME(uregex_regionStart64)
+#define uregex_replaceAll U_ICU_ENTRY_POINT_RENAME(uregex_replaceAll)
+#define uregex_replaceAllUText U_ICU_ENTRY_POINT_RENAME(uregex_replaceAllUText)
+#define uregex_replaceFirst U_ICU_ENTRY_POINT_RENAME(uregex_replaceFirst)
+#define uregex_replaceFirstUText U_ICU_ENTRY_POINT_RENAME(uregex_replaceFirstUText)
+#define uregex_requireEnd U_ICU_ENTRY_POINT_RENAME(uregex_requireEnd)
+#define uregex_reset U_ICU_ENTRY_POINT_RENAME(uregex_reset)
+#define uregex_reset64 U_ICU_ENTRY_POINT_RENAME(uregex_reset64)
+#define uregex_setFindProgressCallback U_ICU_ENTRY_POINT_RENAME(uregex_setFindProgressCallback)
+#define uregex_setMatchCallback U_ICU_ENTRY_POINT_RENAME(uregex_setMatchCallback)
+#define uregex_setRegion U_ICU_ENTRY_POINT_RENAME(uregex_setRegion)
+#define uregex_setRegion64 U_ICU_ENTRY_POINT_RENAME(uregex_setRegion64)
+#define uregex_setRegionAndStart U_ICU_ENTRY_POINT_RENAME(uregex_setRegionAndStart)
+#define uregex_setStackLimit U_ICU_ENTRY_POINT_RENAME(uregex_setStackLimit)
+#define uregex_setText U_ICU_ENTRY_POINT_RENAME(uregex_setText)
+#define uregex_setTimeLimit U_ICU_ENTRY_POINT_RENAME(uregex_setTimeLimit)
+#define uregex_setUText U_ICU_ENTRY_POINT_RENAME(uregex_setUText)
+#define uregex_split U_ICU_ENTRY_POINT_RENAME(uregex_split)
+#define uregex_splitUText U_ICU_ENTRY_POINT_RENAME(uregex_splitUText)
+#define uregex_start U_ICU_ENTRY_POINT_RENAME(uregex_start)
+#define uregex_start64 U_ICU_ENTRY_POINT_RENAME(uregex_start64)
+#define uregex_ucstr_unescape_charAt U_ICU_ENTRY_POINT_RENAME(uregex_ucstr_unescape_charAt)
+#define uregex_useAnchoringBounds U_ICU_ENTRY_POINT_RENAME(uregex_useAnchoringBounds)
+#define uregex_useTransparentBounds U_ICU_ENTRY_POINT_RENAME(uregex_useTransparentBounds)
+#define uregex_utext_unescape_charAt U_ICU_ENTRY_POINT_RENAME(uregex_utext_unescape_charAt)
+#define ures_close U_ICU_ENTRY_POINT_RENAME(ures_close)
+#define ures_copyResb U_ICU_ENTRY_POINT_RENAME(ures_copyResb)
+#define ures_countArrayItems U_ICU_ENTRY_POINT_RENAME(ures_countArrayItems)
+#define ures_findResource U_ICU_ENTRY_POINT_RENAME(ures_findResource)
+#define ures_findSubResource U_ICU_ENTRY_POINT_RENAME(ures_findSubResource)
+#define ures_getBinary U_ICU_ENTRY_POINT_RENAME(ures_getBinary)
+#define ures_getByIndex U_ICU_ENTRY_POINT_RENAME(ures_getByIndex)
+#define ures_getByKey U_ICU_ENTRY_POINT_RENAME(ures_getByKey)
+#define ures_getByKeyWithFallback U_ICU_ENTRY_POINT_RENAME(ures_getByKeyWithFallback)
+#define ures_getFunctionalEquivalent U_ICU_ENTRY_POINT_RENAME(ures_getFunctionalEquivalent)
+#define ures_getInt U_ICU_ENTRY_POINT_RENAME(ures_getInt)
+#define ures_getIntVector U_ICU_ENTRY_POINT_RENAME(ures_getIntVector)
+#define ures_getKey U_ICU_ENTRY_POINT_RENAME(ures_getKey)
+#define ures_getKeywordValues U_ICU_ENTRY_POINT_RENAME(ures_getKeywordValues)
+#define ures_getLocale U_ICU_ENTRY_POINT_RENAME(ures_getLocale)
+#define ures_getLocaleByType U_ICU_ENTRY_POINT_RENAME(ures_getLocaleByType)
+#define ures_getLocaleInternal U_ICU_ENTRY_POINT_RENAME(ures_getLocaleInternal)
+#define ures_getName U_ICU_ENTRY_POINT_RENAME(ures_getName)
+#define ures_getNextResource U_ICU_ENTRY_POINT_RENAME(ures_getNextResource)
+#define ures_getNextString U_ICU_ENTRY_POINT_RENAME(ures_getNextString)
+#define ures_getSize U_ICU_ENTRY_POINT_RENAME(ures_getSize)
+#define ures_getString U_ICU_ENTRY_POINT_RENAME(ures_getString)
+#define ures_getStringByIndex U_ICU_ENTRY_POINT_RENAME(ures_getStringByIndex)
+#define ures_getStringByKey U_ICU_ENTRY_POINT_RENAME(ures_getStringByKey)
+#define ures_getStringByKeyWithFallback U_ICU_ENTRY_POINT_RENAME(ures_getStringByKeyWithFallback)
+#define ures_getType U_ICU_ENTRY_POINT_RENAME(ures_getType)
+#define ures_getUInt U_ICU_ENTRY_POINT_RENAME(ures_getUInt)
+#define ures_getUTF8String U_ICU_ENTRY_POINT_RENAME(ures_getUTF8String)
+#define ures_getUTF8StringByIndex U_ICU_ENTRY_POINT_RENAME(ures_getUTF8StringByIndex)
+#define ures_getUTF8StringByKey U_ICU_ENTRY_POINT_RENAME(ures_getUTF8StringByKey)
+#define ures_getVersion U_ICU_ENTRY_POINT_RENAME(ures_getVersion)
+#define ures_getVersionByKey U_ICU_ENTRY_POINT_RENAME(ures_getVersionByKey)
+#define ures_getVersionNumber U_ICU_ENTRY_POINT_RENAME(ures_getVersionNumber)
+#define ures_getVersionNumberInternal U_ICU_ENTRY_POINT_RENAME(ures_getVersionNumberInternal)
+#define ures_hasNext U_ICU_ENTRY_POINT_RENAME(ures_hasNext)
+#define ures_initStackObject U_ICU_ENTRY_POINT_RENAME(ures_initStackObject)
+#define ures_open U_ICU_ENTRY_POINT_RENAME(ures_open)
+#define ures_openAvailableLocales U_ICU_ENTRY_POINT_RENAME(ures_openAvailableLocales)
+#define ures_openDirect U_ICU_ENTRY_POINT_RENAME(ures_openDirect)
+#define ures_openFillIn U_ICU_ENTRY_POINT_RENAME(ures_openFillIn)
+#define ures_openU U_ICU_ENTRY_POINT_RENAME(ures_openU)
+#define ures_resetIterator U_ICU_ENTRY_POINT_RENAME(ures_resetIterator)
+#define ures_swap U_ICU_ENTRY_POINT_RENAME(ures_swap)
+#define uscript_closeRun U_ICU_ENTRY_POINT_RENAME(uscript_closeRun)
+#define uscript_getCode U_ICU_ENTRY_POINT_RENAME(uscript_getCode)
+#define uscript_getName U_ICU_ENTRY_POINT_RENAME(uscript_getName)
+#define uscript_getScript U_ICU_ENTRY_POINT_RENAME(uscript_getScript)
+#define uscript_getScriptExtensions U_ICU_ENTRY_POINT_RENAME(uscript_getScriptExtensions)
+#define uscript_getShortName U_ICU_ENTRY_POINT_RENAME(uscript_getShortName)
+#define uscript_hasScript U_ICU_ENTRY_POINT_RENAME(uscript_hasScript)
+#define uscript_nextRun U_ICU_ENTRY_POINT_RENAME(uscript_nextRun)
+#define uscript_openRun U_ICU_ENTRY_POINT_RENAME(uscript_openRun)
+#define uscript_resetRun U_ICU_ENTRY_POINT_RENAME(uscript_resetRun)
+#define uscript_setRunText U_ICU_ENTRY_POINT_RENAME(uscript_setRunText)
+#define usearch_close U_ICU_ENTRY_POINT_RENAME(usearch_close)
+#define usearch_first U_ICU_ENTRY_POINT_RENAME(usearch_first)
+#define usearch_following U_ICU_ENTRY_POINT_RENAME(usearch_following)
+#define usearch_getAttribute U_ICU_ENTRY_POINT_RENAME(usearch_getAttribute)
+#define usearch_getBreakIterator U_ICU_ENTRY_POINT_RENAME(usearch_getBreakIterator)
+#define usearch_getCollator U_ICU_ENTRY_POINT_RENAME(usearch_getCollator)
+#define usearch_getMatchedLength U_ICU_ENTRY_POINT_RENAME(usearch_getMatchedLength)
+#define usearch_getMatchedStart U_ICU_ENTRY_POINT_RENAME(usearch_getMatchedStart)
+#define usearch_getMatchedText U_ICU_ENTRY_POINT_RENAME(usearch_getMatchedText)
+#define usearch_getOffset U_ICU_ENTRY_POINT_RENAME(usearch_getOffset)
+#define usearch_getPattern U_ICU_ENTRY_POINT_RENAME(usearch_getPattern)
+#define usearch_getText U_ICU_ENTRY_POINT_RENAME(usearch_getText)
+#define usearch_handleNextCanonical U_ICU_ENTRY_POINT_RENAME(usearch_handleNextCanonical)
+#define usearch_handleNextExact U_ICU_ENTRY_POINT_RENAME(usearch_handleNextExact)
+#define usearch_handlePreviousCanonical U_ICU_ENTRY_POINT_RENAME(usearch_handlePreviousCanonical)
+#define usearch_handlePreviousExact U_ICU_ENTRY_POINT_RENAME(usearch_handlePreviousExact)
+#define usearch_last U_ICU_ENTRY_POINT_RENAME(usearch_last)
+#define usearch_next U_ICU_ENTRY_POINT_RENAME(usearch_next)
+#define usearch_open U_ICU_ENTRY_POINT_RENAME(usearch_open)
+#define usearch_openFromCollator U_ICU_ENTRY_POINT_RENAME(usearch_openFromCollator)
+#define usearch_preceding U_ICU_ENTRY_POINT_RENAME(usearch_preceding)
+#define usearch_previous U_ICU_ENTRY_POINT_RENAME(usearch_previous)
+#define usearch_reset U_ICU_ENTRY_POINT_RENAME(usearch_reset)
+#define usearch_search U_ICU_ENTRY_POINT_RENAME(usearch_search)
+#define usearch_searchBackwards U_ICU_ENTRY_POINT_RENAME(usearch_searchBackwards)
+#define usearch_setAttribute U_ICU_ENTRY_POINT_RENAME(usearch_setAttribute)
+#define usearch_setBreakIterator U_ICU_ENTRY_POINT_RENAME(usearch_setBreakIterator)
+#define usearch_setCollator U_ICU_ENTRY_POINT_RENAME(usearch_setCollator)
+#define usearch_setOffset U_ICU_ENTRY_POINT_RENAME(usearch_setOffset)
+#define usearch_setPattern U_ICU_ENTRY_POINT_RENAME(usearch_setPattern)
+#define usearch_setText U_ICU_ENTRY_POINT_RENAME(usearch_setText)
+#define uset_add U_ICU_ENTRY_POINT_RENAME(uset_add)
+#define uset_addAll U_ICU_ENTRY_POINT_RENAME(uset_addAll)
+#define uset_addAllCodePoints U_ICU_ENTRY_POINT_RENAME(uset_addAllCodePoints)
+#define uset_addRange U_ICU_ENTRY_POINT_RENAME(uset_addRange)
+#define uset_addString U_ICU_ENTRY_POINT_RENAME(uset_addString)
+#define uset_applyIntPropertyValue U_ICU_ENTRY_POINT_RENAME(uset_applyIntPropertyValue)
+#define uset_applyPattern U_ICU_ENTRY_POINT_RENAME(uset_applyPattern)
+#define uset_applyPropertyAlias U_ICU_ENTRY_POINT_RENAME(uset_applyPropertyAlias)
+#define uset_charAt U_ICU_ENTRY_POINT_RENAME(uset_charAt)
+#define uset_clear U_ICU_ENTRY_POINT_RENAME(uset_clear)
+#define uset_clone U_ICU_ENTRY_POINT_RENAME(uset_clone)
+#define uset_cloneAsThawed U_ICU_ENTRY_POINT_RENAME(uset_cloneAsThawed)
+#define uset_close U_ICU_ENTRY_POINT_RENAME(uset_close)
+#define uset_closeOver U_ICU_ENTRY_POINT_RENAME(uset_closeOver)
+#define uset_compact U_ICU_ENTRY_POINT_RENAME(uset_compact)
+#define uset_complement U_ICU_ENTRY_POINT_RENAME(uset_complement)
+#define uset_complementAll U_ICU_ENTRY_POINT_RENAME(uset_complementAll)
+#define uset_contains U_ICU_ENTRY_POINT_RENAME(uset_contains)
+#define uset_containsAll U_ICU_ENTRY_POINT_RENAME(uset_containsAll)
+#define uset_containsAllCodePoints U_ICU_ENTRY_POINT_RENAME(uset_containsAllCodePoints)
+#define uset_containsNone U_ICU_ENTRY_POINT_RENAME(uset_containsNone)
+#define uset_containsRange U_ICU_ENTRY_POINT_RENAME(uset_containsRange)
+#define uset_containsSome U_ICU_ENTRY_POINT_RENAME(uset_containsSome)
+#define uset_containsString U_ICU_ENTRY_POINT_RENAME(uset_containsString)
+#define uset_equals U_ICU_ENTRY_POINT_RENAME(uset_equals)
+#define uset_freeze U_ICU_ENTRY_POINT_RENAME(uset_freeze)
+#define uset_getItem U_ICU_ENTRY_POINT_RENAME(uset_getItem)
+#define uset_getItemCount U_ICU_ENTRY_POINT_RENAME(uset_getItemCount)
+#define uset_getSerializedRange U_ICU_ENTRY_POINT_RENAME(uset_getSerializedRange)
+#define uset_getSerializedRangeCount U_ICU_ENTRY_POINT_RENAME(uset_getSerializedRangeCount)
+#define uset_getSerializedSet U_ICU_ENTRY_POINT_RENAME(uset_getSerializedSet)
+#define uset_indexOf U_ICU_ENTRY_POINT_RENAME(uset_indexOf)
+#define uset_isEmpty U_ICU_ENTRY_POINT_RENAME(uset_isEmpty)
+#define uset_isFrozen U_ICU_ENTRY_POINT_RENAME(uset_isFrozen)
+#define uset_open U_ICU_ENTRY_POINT_RENAME(uset_open)
+#define uset_openEmpty U_ICU_ENTRY_POINT_RENAME(uset_openEmpty)
+#define uset_openPattern U_ICU_ENTRY_POINT_RENAME(uset_openPattern)
+#define uset_openPatternOptions U_ICU_ENTRY_POINT_RENAME(uset_openPatternOptions)
+#define uset_remove U_ICU_ENTRY_POINT_RENAME(uset_remove)
+#define uset_removeAll U_ICU_ENTRY_POINT_RENAME(uset_removeAll)
+#define uset_removeAllStrings U_ICU_ENTRY_POINT_RENAME(uset_removeAllStrings)
+#define uset_removeRange U_ICU_ENTRY_POINT_RENAME(uset_removeRange)
+#define uset_removeString U_ICU_ENTRY_POINT_RENAME(uset_removeString)
+#define uset_resemblesPattern U_ICU_ENTRY_POINT_RENAME(uset_resemblesPattern)
+#define uset_retain U_ICU_ENTRY_POINT_RENAME(uset_retain)
+#define uset_retainAll U_ICU_ENTRY_POINT_RENAME(uset_retainAll)
+#define uset_serialize U_ICU_ENTRY_POINT_RENAME(uset_serialize)
+#define uset_serializedContains U_ICU_ENTRY_POINT_RENAME(uset_serializedContains)
+#define uset_set U_ICU_ENTRY_POINT_RENAME(uset_set)
+#define uset_setSerializedToOne U_ICU_ENTRY_POINT_RENAME(uset_setSerializedToOne)
+#define uset_size U_ICU_ENTRY_POINT_RENAME(uset_size)
+#define uset_span U_ICU_ENTRY_POINT_RENAME(uset_span)
+#define uset_spanBack U_ICU_ENTRY_POINT_RENAME(uset_spanBack)
+#define uset_spanBackUTF8 U_ICU_ENTRY_POINT_RENAME(uset_spanBackUTF8)
+#define uset_spanUTF8 U_ICU_ENTRY_POINT_RENAME(uset_spanUTF8)
+#define uset_toPattern U_ICU_ENTRY_POINT_RENAME(uset_toPattern)
+#define uspoof_areConfusable U_ICU_ENTRY_POINT_RENAME(uspoof_areConfusable)
+#define uspoof_areConfusableUTF8 U_ICU_ENTRY_POINT_RENAME(uspoof_areConfusableUTF8)
+#define uspoof_areConfusableUnicodeString U_ICU_ENTRY_POINT_RENAME(uspoof_areConfusableUnicodeString)
+#define uspoof_check U_ICU_ENTRY_POINT_RENAME(uspoof_check)
+#define uspoof_checkUTF8 U_ICU_ENTRY_POINT_RENAME(uspoof_checkUTF8)
+#define uspoof_checkUnicodeString U_ICU_ENTRY_POINT_RENAME(uspoof_checkUnicodeString)
+#define uspoof_clone U_ICU_ENTRY_POINT_RENAME(uspoof_clone)
+#define uspoof_close U_ICU_ENTRY_POINT_RENAME(uspoof_close)
+#define uspoof_getAllowedChars U_ICU_ENTRY_POINT_RENAME(uspoof_getAllowedChars)
+#define uspoof_getAllowedLocales U_ICU_ENTRY_POINT_RENAME(uspoof_getAllowedLocales)
+#define uspoof_getAllowedUnicodeSet U_ICU_ENTRY_POINT_RENAME(uspoof_getAllowedUnicodeSet)
+#define uspoof_getChecks U_ICU_ENTRY_POINT_RENAME(uspoof_getChecks)
+#define uspoof_getSkeleton U_ICU_ENTRY_POINT_RENAME(uspoof_getSkeleton)
+#define uspoof_getSkeletonUTF8 U_ICU_ENTRY_POINT_RENAME(uspoof_getSkeletonUTF8)
+#define uspoof_getSkeletonUnicodeString U_ICU_ENTRY_POINT_RENAME(uspoof_getSkeletonUnicodeString)
+#define uspoof_open U_ICU_ENTRY_POINT_RENAME(uspoof_open)
+#define uspoof_openFromSerialized U_ICU_ENTRY_POINT_RENAME(uspoof_openFromSerialized)
+#define uspoof_openFromSource U_ICU_ENTRY_POINT_RENAME(uspoof_openFromSource)
+#define uspoof_serialize U_ICU_ENTRY_POINT_RENAME(uspoof_serialize)
+#define uspoof_setAllowedChars U_ICU_ENTRY_POINT_RENAME(uspoof_setAllowedChars)
+#define uspoof_setAllowedLocales U_ICU_ENTRY_POINT_RENAME(uspoof_setAllowedLocales)
+#define uspoof_setAllowedUnicodeSet U_ICU_ENTRY_POINT_RENAME(uspoof_setAllowedUnicodeSet)
+#define uspoof_setChecks U_ICU_ENTRY_POINT_RENAME(uspoof_setChecks)
+#define uspoof_swap U_ICU_ENTRY_POINT_RENAME(uspoof_swap)
+#define usprep_close U_ICU_ENTRY_POINT_RENAME(usprep_close)
+#define usprep_open U_ICU_ENTRY_POINT_RENAME(usprep_open)
+#define usprep_openByType U_ICU_ENTRY_POINT_RENAME(usprep_openByType)
+#define usprep_prepare U_ICU_ENTRY_POINT_RENAME(usprep_prepare)
+#define usprep_swap U_ICU_ENTRY_POINT_RENAME(usprep_swap)
+#define ustr_foldCase U_ICU_ENTRY_POINT_RENAME(ustr_foldCase)
+#define ustr_toLower U_ICU_ENTRY_POINT_RENAME(ustr_toLower)
+#define ustr_toTitle U_ICU_ENTRY_POINT_RENAME(ustr_toTitle)
+#define ustr_toUpper U_ICU_ENTRY_POINT_RENAME(ustr_toUpper)
+#define utext_caseCompare U_ICU_ENTRY_POINT_RENAME(utext_caseCompare)
+#define utext_caseCompareNativeLimit U_ICU_ENTRY_POINT_RENAME(utext_caseCompareNativeLimit)
+#define utext_char32At U_ICU_ENTRY_POINT_RENAME(utext_char32At)
+#define utext_clone U_ICU_ENTRY_POINT_RENAME(utext_clone)
+#define utext_close U_ICU_ENTRY_POINT_RENAME(utext_close)
+#define utext_compare U_ICU_ENTRY_POINT_RENAME(utext_compare)
+#define utext_compareNativeLimit U_ICU_ENTRY_POINT_RENAME(utext_compareNativeLimit)
+#define utext_copy U_ICU_ENTRY_POINT_RENAME(utext_copy)
+#define utext_current32 U_ICU_ENTRY_POINT_RENAME(utext_current32)
+#define utext_equals U_ICU_ENTRY_POINT_RENAME(utext_equals)
+#define utext_extract U_ICU_ENTRY_POINT_RENAME(utext_extract)
+#define utext_freeze U_ICU_ENTRY_POINT_RENAME(utext_freeze)
+#define utext_getNativeIndex U_ICU_ENTRY_POINT_RENAME(utext_getNativeIndex)
+#define utext_getPreviousNativeIndex U_ICU_ENTRY_POINT_RENAME(utext_getPreviousNativeIndex)
+#define utext_hasMetaData U_ICU_ENTRY_POINT_RENAME(utext_hasMetaData)
+#define utext_isLengthExpensive U_ICU_ENTRY_POINT_RENAME(utext_isLengthExpensive)
+#define utext_isWritable U_ICU_ENTRY_POINT_RENAME(utext_isWritable)
+#define utext_moveIndex32 U_ICU_ENTRY_POINT_RENAME(utext_moveIndex32)
+#define utext_nativeLength U_ICU_ENTRY_POINT_RENAME(utext_nativeLength)
+#define utext_next32 U_ICU_ENTRY_POINT_RENAME(utext_next32)
+#define utext_next32From U_ICU_ENTRY_POINT_RENAME(utext_next32From)
+#define utext_openCharacterIterator U_ICU_ENTRY_POINT_RENAME(utext_openCharacterIterator)
+#define utext_openConstUnicodeString U_ICU_ENTRY_POINT_RENAME(utext_openConstUnicodeString)
+#define utext_openReplaceable U_ICU_ENTRY_POINT_RENAME(utext_openReplaceable)
+#define utext_openUChars U_ICU_ENTRY_POINT_RENAME(utext_openUChars)
+#define utext_openUTF8 U_ICU_ENTRY_POINT_RENAME(utext_openUTF8)
+#define utext_openUnicodeString U_ICU_ENTRY_POINT_RENAME(utext_openUnicodeString)
+#define utext_previous32 U_ICU_ENTRY_POINT_RENAME(utext_previous32)
+#define utext_previous32From U_ICU_ENTRY_POINT_RENAME(utext_previous32From)
+#define utext_replace U_ICU_ENTRY_POINT_RENAME(utext_replace)
+#define utext_setNativeIndex U_ICU_ENTRY_POINT_RENAME(utext_setNativeIndex)
+#define utext_setup U_ICU_ENTRY_POINT_RENAME(utext_setup)
+#define utf8_appendCharSafeBody U_ICU_ENTRY_POINT_RENAME(utf8_appendCharSafeBody)
+#define utf8_back1SafeBody U_ICU_ENTRY_POINT_RENAME(utf8_back1SafeBody)
+#define utf8_countTrailBytes U_ICU_ENTRY_POINT_RENAME(utf8_countTrailBytes)
+#define utf8_nextCharSafeBody U_ICU_ENTRY_POINT_RENAME(utf8_nextCharSafeBody)
+#define utf8_prevCharSafeBody U_ICU_ENTRY_POINT_RENAME(utf8_prevCharSafeBody)
+#define utmscale_fromInt64 U_ICU_ENTRY_POINT_RENAME(utmscale_fromInt64)
+#define utmscale_getTimeScaleValue U_ICU_ENTRY_POINT_RENAME(utmscale_getTimeScaleValue)
+#define utmscale_toInt64 U_ICU_ENTRY_POINT_RENAME(utmscale_toInt64)
+#define utrace_cleanup U_ICU_ENTRY_POINT_RENAME(utrace_cleanup)
+#define utrace_data U_ICU_ENTRY_POINT_RENAME(utrace_data)
+#define utrace_entry U_ICU_ENTRY_POINT_RENAME(utrace_entry)
+#define utrace_exit U_ICU_ENTRY_POINT_RENAME(utrace_exit)
+#define utrace_format U_ICU_ENTRY_POINT_RENAME(utrace_format)
+#define utrace_functionName U_ICU_ENTRY_POINT_RENAME(utrace_functionName)
+#define utrace_getFunctions U_ICU_ENTRY_POINT_RENAME(utrace_getFunctions)
+#define utrace_getLevel U_ICU_ENTRY_POINT_RENAME(utrace_getLevel)
+#define utrace_level U_ICU_ENTRY_POINT_RENAME(utrace_level)
+#define utrace_setFunctions U_ICU_ENTRY_POINT_RENAME(utrace_setFunctions)
+#define utrace_setLevel U_ICU_ENTRY_POINT_RENAME(utrace_setLevel)
+#define utrace_vformat U_ICU_ENTRY_POINT_RENAME(utrace_vformat)
+#define utrans_clone U_ICU_ENTRY_POINT_RENAME(utrans_clone)
+#define utrans_close U_ICU_ENTRY_POINT_RENAME(utrans_close)
+#define utrans_countAvailableIDs U_ICU_ENTRY_POINT_RENAME(utrans_countAvailableIDs)
+#define utrans_getAvailableID U_ICU_ENTRY_POINT_RENAME(utrans_getAvailableID)
+#define utrans_getID U_ICU_ENTRY_POINT_RENAME(utrans_getID)
+#define utrans_getUnicodeID U_ICU_ENTRY_POINT_RENAME(utrans_getUnicodeID)
+#define utrans_open U_ICU_ENTRY_POINT_RENAME(utrans_open)
+#define utrans_openIDs U_ICU_ENTRY_POINT_RENAME(utrans_openIDs)
+#define utrans_openInverse U_ICU_ENTRY_POINT_RENAME(utrans_openInverse)
+#define utrans_openU U_ICU_ENTRY_POINT_RENAME(utrans_openU)
+#define utrans_register U_ICU_ENTRY_POINT_RENAME(utrans_register)
+#define utrans_rep_caseContextIterator U_ICU_ENTRY_POINT_RENAME(utrans_rep_caseContextIterator)
+#define utrans_setFilter U_ICU_ENTRY_POINT_RENAME(utrans_setFilter)
+#define utrans_stripRules U_ICU_ENTRY_POINT_RENAME(utrans_stripRules)
+#define utrans_trans U_ICU_ENTRY_POINT_RENAME(utrans_trans)
+#define utrans_transIncremental U_ICU_ENTRY_POINT_RENAME(utrans_transIncremental)
+#define utrans_transIncrementalUChars U_ICU_ENTRY_POINT_RENAME(utrans_transIncrementalUChars)
+#define utrans_transUChars U_ICU_ENTRY_POINT_RENAME(utrans_transUChars)
+#define utrans_transliterator_cleanup U_ICU_ENTRY_POINT_RENAME(utrans_transliterator_cleanup)
+#define utrans_unregister U_ICU_ENTRY_POINT_RENAME(utrans_unregister)
+#define utrans_unregisterID U_ICU_ENTRY_POINT_RENAME(utrans_unregisterID)
+#define utrie2_clone U_ICU_ENTRY_POINT_RENAME(utrie2_clone)
+#define utrie2_cloneAsThawed U_ICU_ENTRY_POINT_RENAME(utrie2_cloneAsThawed)
+#define utrie2_close U_ICU_ENTRY_POINT_RENAME(utrie2_close)
+#define utrie2_enum U_ICU_ENTRY_POINT_RENAME(utrie2_enum)
+#define utrie2_enumForLeadSurrogate U_ICU_ENTRY_POINT_RENAME(utrie2_enumForLeadSurrogate)
+#define utrie2_freeze U_ICU_ENTRY_POINT_RENAME(utrie2_freeze)
+#define utrie2_fromUTrie U_ICU_ENTRY_POINT_RENAME(utrie2_fromUTrie)
+#define utrie2_get32 U_ICU_ENTRY_POINT_RENAME(utrie2_get32)
+#define utrie2_get32FromLeadSurrogateCodeUnit U_ICU_ENTRY_POINT_RENAME(utrie2_get32FromLeadSurrogateCodeUnit)
+#define utrie2_getVersion U_ICU_ENTRY_POINT_RENAME(utrie2_getVersion)
+#define utrie2_internalU8NextIndex U_ICU_ENTRY_POINT_RENAME(utrie2_internalU8NextIndex)
+#define utrie2_internalU8PrevIndex U_ICU_ENTRY_POINT_RENAME(utrie2_internalU8PrevIndex)
+#define utrie2_isFrozen U_ICU_ENTRY_POINT_RENAME(utrie2_isFrozen)
+#define utrie2_open U_ICU_ENTRY_POINT_RENAME(utrie2_open)
+#define utrie2_openDummy U_ICU_ENTRY_POINT_RENAME(utrie2_openDummy)
+#define utrie2_openFromSerialized U_ICU_ENTRY_POINT_RENAME(utrie2_openFromSerialized)
+#define utrie2_serialize U_ICU_ENTRY_POINT_RENAME(utrie2_serialize)
+#define utrie2_set32 U_ICU_ENTRY_POINT_RENAME(utrie2_set32)
+#define utrie2_set32ForLeadSurrogateCodeUnit U_ICU_ENTRY_POINT_RENAME(utrie2_set32ForLeadSurrogateCodeUnit)
+#define utrie2_setRange32 U_ICU_ENTRY_POINT_RENAME(utrie2_setRange32)
+#define utrie2_swap U_ICU_ENTRY_POINT_RENAME(utrie2_swap)
+#define utrie2_swapAnyVersion U_ICU_ENTRY_POINT_RENAME(utrie2_swapAnyVersion)
+#define utrie_clone U_ICU_ENTRY_POINT_RENAME(utrie_clone)
+#define utrie_close U_ICU_ENTRY_POINT_RENAME(utrie_close)
+#define utrie_defaultGetFoldingOffset U_ICU_ENTRY_POINT_RENAME(utrie_defaultGetFoldingOffset)
+#define utrie_enum U_ICU_ENTRY_POINT_RENAME(utrie_enum)
+#define utrie_get32 U_ICU_ENTRY_POINT_RENAME(utrie_get32)
+#define utrie_getData U_ICU_ENTRY_POINT_RENAME(utrie_getData)
+#define utrie_open U_ICU_ENTRY_POINT_RENAME(utrie_open)
+#define utrie_serialize U_ICU_ENTRY_POINT_RENAME(utrie_serialize)
+#define utrie_set32 U_ICU_ENTRY_POINT_RENAME(utrie_set32)
+#define utrie_setRange32 U_ICU_ENTRY_POINT_RENAME(utrie_setRange32)
+#define utrie_swap U_ICU_ENTRY_POINT_RENAME(utrie_swap)
+#define utrie_unserialize U_ICU_ENTRY_POINT_RENAME(utrie_unserialize)
+#define utrie_unserializeDummy U_ICU_ENTRY_POINT_RENAME(utrie_unserializeDummy)
+#define vzone_clone U_ICU_ENTRY_POINT_RENAME(vzone_clone)
+#define vzone_close U_ICU_ENTRY_POINT_RENAME(vzone_close)
+#define vzone_countTransitionRules U_ICU_ENTRY_POINT_RENAME(vzone_countTransitionRules)
+#define vzone_equals U_ICU_ENTRY_POINT_RENAME(vzone_equals)
+#define vzone_getDynamicClassID U_ICU_ENTRY_POINT_RENAME(vzone_getDynamicClassID)
+#define vzone_getLastModified U_ICU_ENTRY_POINT_RENAME(vzone_getLastModified)
+#define vzone_getNextTransition U_ICU_ENTRY_POINT_RENAME(vzone_getNextTransition)
+#define vzone_getOffset U_ICU_ENTRY_POINT_RENAME(vzone_getOffset)
+#define vzone_getOffset2 U_ICU_ENTRY_POINT_RENAME(vzone_getOffset2)
+#define vzone_getOffset3 U_ICU_ENTRY_POINT_RENAME(vzone_getOffset3)
+#define vzone_getPreviousTransition U_ICU_ENTRY_POINT_RENAME(vzone_getPreviousTransition)
+#define vzone_getRawOffset U_ICU_ENTRY_POINT_RENAME(vzone_getRawOffset)
+#define vzone_getStaticClassID U_ICU_ENTRY_POINT_RENAME(vzone_getStaticClassID)
+#define vzone_getTZURL U_ICU_ENTRY_POINT_RENAME(vzone_getTZURL)
+#define vzone_hasSameRules U_ICU_ENTRY_POINT_RENAME(vzone_hasSameRules)
+#define vzone_inDaylightTime U_ICU_ENTRY_POINT_RENAME(vzone_inDaylightTime)
+#define vzone_openData U_ICU_ENTRY_POINT_RENAME(vzone_openData)
+#define vzone_openID U_ICU_ENTRY_POINT_RENAME(vzone_openID)
+#define vzone_setLastModified U_ICU_ENTRY_POINT_RENAME(vzone_setLastModified)
+#define vzone_setRawOffset U_ICU_ENTRY_POINT_RENAME(vzone_setRawOffset)
+#define vzone_setTZURL U_ICU_ENTRY_POINT_RENAME(vzone_setTZURL)
+#define vzone_useDaylightTime U_ICU_ENTRY_POINT_RENAME(vzone_useDaylightTime)
+#define vzone_write U_ICU_ENTRY_POINT_RENAME(vzone_write)
+#define vzone_writeFromStart U_ICU_ENTRY_POINT_RENAME(vzone_writeFromStart)
+#define vzone_writeSimple U_ICU_ENTRY_POINT_RENAME(vzone_writeSimple)
+#define zrule_close U_ICU_ENTRY_POINT_RENAME(zrule_close)
+#define zrule_equals U_ICU_ENTRY_POINT_RENAME(zrule_equals)
+#define zrule_getDSTSavings U_ICU_ENTRY_POINT_RENAME(zrule_getDSTSavings)
+#define zrule_getName U_ICU_ENTRY_POINT_RENAME(zrule_getName)
+#define zrule_getRawOffset U_ICU_ENTRY_POINT_RENAME(zrule_getRawOffset)
+#define zrule_isEquivalentTo U_ICU_ENTRY_POINT_RENAME(zrule_isEquivalentTo)
+#define ztrans_adoptFrom U_ICU_ENTRY_POINT_RENAME(ztrans_adoptFrom)
+#define ztrans_adoptTo U_ICU_ENTRY_POINT_RENAME(ztrans_adoptTo)
+#define ztrans_clone U_ICU_ENTRY_POINT_RENAME(ztrans_clone)
+#define ztrans_close U_ICU_ENTRY_POINT_RENAME(ztrans_close)
+#define ztrans_equals U_ICU_ENTRY_POINT_RENAME(ztrans_equals)
+#define ztrans_getDynamicClassID U_ICU_ENTRY_POINT_RENAME(ztrans_getDynamicClassID)
+#define ztrans_getFrom U_ICU_ENTRY_POINT_RENAME(ztrans_getFrom)
+#define ztrans_getStaticClassID U_ICU_ENTRY_POINT_RENAME(ztrans_getStaticClassID)
+#define ztrans_getTime U_ICU_ENTRY_POINT_RENAME(ztrans_getTime)
+#define ztrans_getTo U_ICU_ENTRY_POINT_RENAME(ztrans_getTo)
+#define ztrans_open U_ICU_ENTRY_POINT_RENAME(ztrans_open)
+#define ztrans_openEmpty U_ICU_ENTRY_POINT_RENAME(ztrans_openEmpty)
+#define ztrans_setFrom U_ICU_ENTRY_POINT_RENAME(ztrans_setFrom)
+#define ztrans_setTime U_ICU_ENTRY_POINT_RENAME(ztrans_setTime)
+#define ztrans_setTo U_ICU_ENTRY_POINT_RENAME(ztrans_setTo)
+
+
/* C++ class names renaming defines */
#ifdef XP_CPLUSPLUS
#if !U_HAVE_NAMESPACE
-#define AbsoluteValueSubstitution AbsoluteValueSubstitution_3_2
-#define AlternateSubstitutionSubtable AlternateSubstitutionSubtable_3_2
-#define AnchorTable AnchorTable_3_2
-#define AnyTransliterator AnyTransliterator_3_2
-#define ArabicOpenTypeLayoutEngine ArabicOpenTypeLayoutEngine_3_2
-#define ArabicShaping ArabicShaping_3_2
-#define BasicCalendarFactory BasicCalendarFactory_3_2
-#define BinarySearchLookupTable BinarySearchLookupTable_3_2
-#define BreakDictionary BreakDictionary_3_2
-#define BreakIterator BreakIterator_3_2
-#define BuddhistCalendar BuddhistCalendar_3_2
-#define CFactory CFactory_3_2
-#define Calendar Calendar_3_2
-#define CalendarAstronomer CalendarAstronomer_3_2
-#define CalendarCache CalendarCache_3_2
-#define CalendarData CalendarData_3_2
-#define CalendarService CalendarService_3_2
-#define CanonShaping CanonShaping_3_2
-#define CanonicalIterator CanonicalIterator_3_2
-#define CaseMapTransliterator CaseMapTransliterator_3_2
-#define ChainingContextualSubstitutionFormat1Subtable ChainingContextualSubstitutionFormat1Subtable_3_2
-#define ChainingContextualSubstitutionFormat2Subtable ChainingContextualSubstitutionFormat2Subtable_3_2
-#define ChainingContextualSubstitutionFormat3Subtable ChainingContextualSubstitutionFormat3Subtable_3_2
-#define ChainingContextualSubstitutionSubtable ChainingContextualSubstitutionSubtable_3_2
-#define CharSubstitutionFilter CharSubstitutionFilter_3_2
-#define CharacterIterator CharacterIterator_3_2
-#define ChoiceFormat ChoiceFormat_3_2
-#define ClassDefFormat1Table ClassDefFormat1Table_3_2
-#define ClassDefFormat2Table ClassDefFormat2Table_3_2
-#define ClassDefinitionTable ClassDefinitionTable_3_2
-#define CollationElementIterator CollationElementIterator_3_2
-#define CollationKey CollationKey_3_2
-#define Collator Collator_3_2
-#define CollatorFactory CollatorFactory_3_2
-#define CompoundTransliterator CompoundTransliterator_3_2
-#define ContextualGlyphSubstitutionProcessor ContextualGlyphSubstitutionProcessor_3_2
-#define ContextualSubstitutionBase ContextualSubstitutionBase_3_2
-#define ContextualSubstitutionFormat1Subtable ContextualSubstitutionFormat1Subtable_3_2
-#define ContextualSubstitutionFormat2Subtable ContextualSubstitutionFormat2Subtable_3_2
-#define ContextualSubstitutionFormat3Subtable ContextualSubstitutionFormat3Subtable_3_2
-#define ContextualSubstitutionSubtable ContextualSubstitutionSubtable_3_2
-#define CoverageFormat1Table CoverageFormat1Table_3_2
-#define CoverageFormat2Table CoverageFormat2Table_3_2
-#define CoverageTable CoverageTable_3_2
-#define CurrencyAmount CurrencyAmount_3_2
-#define CurrencyFormat CurrencyFormat_3_2
-#define CurrencyUnit CurrencyUnit_3_2
-#define CursiveAttachmentSubtable CursiveAttachmentSubtable_3_2
-#define DateFormat DateFormat_3_2
-#define DateFormatSymbols DateFormatSymbols_3_2
-#define DecimalFormat DecimalFormat_3_2
-#define DecimalFormatSymbols DecimalFormatSymbols_3_2
-#define DefaultCalendarFactory DefaultCalendarFactory_3_2
-#define DefaultCharMapper DefaultCharMapper_3_2
-#define DeviceTable DeviceTable_3_2
-#define DictionaryBasedBreakIterator DictionaryBasedBreakIterator_3_2
-#define DictionaryBasedBreakIteratorTables DictionaryBasedBreakIteratorTables_3_2
-#define DigitList DigitList_3_2
-#define Entry Entry_3_2
-#define EnumToOffset EnumToOffset_3_2
-#define EscapeTransliterator EscapeTransliterator_3_2
-#define EventListener EventListener_3_2
-#define ExtensionSubtable ExtensionSubtable_3_2
-#define FeatureListTable FeatureListTable_3_2
-#define FieldPosition FieldPosition_3_2
-#define FontRuns FontRuns_3_2
-#define Format Format_3_2
-#define Format1AnchorTable Format1AnchorTable_3_2
-#define Format2AnchorTable Format2AnchorTable_3_2
-#define Format3AnchorTable Format3AnchorTable_3_2
-#define Formattable Formattable_3_2
-#define ForwardCharacterIterator ForwardCharacterIterator_3_2
-#define FractionalPartSubstitution FractionalPartSubstitution_3_2
-#define FunctionReplacer FunctionReplacer_3_2
-#define GDEFMarkFilter GDEFMarkFilter_3_2
-#define GXLayoutEngine GXLayoutEngine_3_2
-#define GlyphDefinitionTableHeader GlyphDefinitionTableHeader_3_2
-#define GlyphIterator GlyphIterator_3_2
-#define GlyphLookupTableHeader GlyphLookupTableHeader_3_2
-#define GlyphPositioningLookupProcessor GlyphPositioningLookupProcessor_3_2
-#define GlyphPositioningTableHeader GlyphPositioningTableHeader_3_2
-#define GlyphSubstitutionLookupProcessor GlyphSubstitutionLookupProcessor_3_2
-#define GlyphSubstitutionTableHeader GlyphSubstitutionTableHeader_3_2
-#define Grego Grego_3_2
-#define GregorianCalendar GregorianCalendar_3_2
-#define HanOpenTypeLayoutEngine HanOpenTypeLayoutEngine_3_2
-#define HebrewCalendar HebrewCalendar_3_2
-#define ICUBreakIteratorFactory ICUBreakIteratorFactory_3_2
-#define ICUBreakIteratorService ICUBreakIteratorService_3_2
-#define ICUCollatorFactory ICUCollatorFactory_3_2
-#define ICUCollatorService ICUCollatorService_3_2
-#define ICULayoutEngine ICULayoutEngine_3_2
-#define ICULocaleService ICULocaleService_3_2
-#define ICUNotifier ICUNotifier_3_2
-#define ICUNumberFormatFactory ICUNumberFormatFactory_3_2
-#define ICUNumberFormatService ICUNumberFormatService_3_2
-#define ICUResourceBundleFactory ICUResourceBundleFactory_3_2
-#define ICUService ICUService_3_2
-#define ICUServiceFactory ICUServiceFactory_3_2
-#define ICUServiceKey ICUServiceKey_3_2
-#define ICU_Utility ICU_Utility_3_2
-#define IndicClassTable IndicClassTable_3_2
-#define IndicOpenTypeLayoutEngine IndicOpenTypeLayoutEngine_3_2
-#define IndicRearrangementProcessor IndicRearrangementProcessor_3_2
-#define IndicReordering IndicReordering_3_2
-#define IntegralPartSubstitution IntegralPartSubstitution_3_2
-#define IslamicCalendar IslamicCalendar_3_2
-#define JapaneseCalendar JapaneseCalendar_3_2
-#define KeywordEnumeration KeywordEnumeration_3_2
-#define LECharMapper LECharMapper_3_2
-#define LEFontInstance LEFontInstance_3_2
-#define LEGlyphFilter LEGlyphFilter_3_2
-#define LEGlyphStorage LEGlyphStorage_3_2
-#define LEInsertionCallback LEInsertionCallback_3_2
-#define LEInsertionList LEInsertionList_3_2
-#define LXUtilities LXUtilities_3_2
-#define LayoutEngine LayoutEngine_3_2
-#define LigatureSubstitutionProcessor LigatureSubstitutionProcessor_3_2
-#define LigatureSubstitutionSubtable LigatureSubstitutionSubtable_3_2
-#define LocDataParser LocDataParser_3_2
-#define Locale Locale_3_2
-#define LocaleBased LocaleBased_3_2
-#define LocaleKey LocaleKey_3_2
-#define LocaleKeyFactory LocaleKeyFactory_3_2
-#define LocaleRuns LocaleRuns_3_2
-#define LocaleUtility LocaleUtility_3_2
-#define LocalizationInfo LocalizationInfo_3_2
-#define LookupListTable LookupListTable_3_2
-#define LookupProcessor LookupProcessor_3_2
-#define LookupSubtable LookupSubtable_3_2
-#define LookupTable LookupTable_3_2
-#define LowercaseTransliterator LowercaseTransliterator_3_2
-#define MPreFixups MPreFixups_3_2
-#define MarkArray MarkArray_3_2
-#define MarkToBasePositioningSubtable MarkToBasePositioningSubtable_3_2
-#define MarkToLigaturePositioningSubtable MarkToLigaturePositioningSubtable_3_2
-#define MarkToMarkPositioningSubtable MarkToMarkPositioningSubtable_3_2
-#define Math Math_3_2
-#define Measure Measure_3_2
-#define MeasureFormat MeasureFormat_3_2
-#define MeasureUnit MeasureUnit_3_2
-#define MessageFormat MessageFormat_3_2
-#define MessageFormatAdapter MessageFormatAdapter_3_2
-#define ModulusSubstitution ModulusSubstitution_3_2
-#define MoonRiseSetCoordFunc MoonRiseSetCoordFunc_3_2
-#define MoonTimeAngleFunc MoonTimeAngleFunc_3_2
-#define MorphSubtableHeader MorphSubtableHeader_3_2
-#define MorphTableHeader MorphTableHeader_3_2
-#define MultipleSubstitutionSubtable MultipleSubstitutionSubtable_3_2
-#define MultiplierSubstitution MultiplierSubstitution_3_2
-#define NFFactory NFFactory_3_2
-#define NFRule NFRule_3_2
-#define NFRuleSet NFRuleSet_3_2
-#define NFSubstitution NFSubstitution_3_2
-#define NameToEnum NameToEnum_3_2
-#define NameUnicodeTransliterator NameUnicodeTransliterator_3_2
-#define NonContextualGlyphSubstitutionProcessor NonContextualGlyphSubstitutionProcessor_3_2
-#define NonContiguousEnumToOffset NonContiguousEnumToOffset_3_2
-#define NormalizationTransliterator NormalizationTransliterator_3_2
-#define Normalizer Normalizer_3_2
-#define NullSubstitution NullSubstitution_3_2
-#define NullTransliterator NullTransliterator_3_2
-#define NumberFormat NumberFormat_3_2
-#define NumberFormatFactory NumberFormatFactory_3_2
-#define NumeratorSubstitution NumeratorSubstitution_3_2
-#define OlsonTimeZone OlsonTimeZone_3_2
-#define OpenTypeLayoutEngine OpenTypeLayoutEngine_3_2
-#define OpenTypeUtilities OpenTypeUtilities_3_2
-#define PairPositioningFormat1Subtable PairPositioningFormat1Subtable_3_2
-#define PairPositioningFormat2Subtable PairPositioningFormat2Subtable_3_2
-#define PairPositioningSubtable PairPositioningSubtable_3_2
-#define ParagraphLayout ParagraphLayout_3_2
-#define ParseData ParseData_3_2
-#define ParsePosition ParsePosition_3_2
-#define PropertyAliases PropertyAliases_3_2
-#define Quantifier Quantifier_3_2
-#define RBBIDataWrapper RBBIDataWrapper_3_2
-#define RBBINode RBBINode_3_2
-#define RBBIRuleBuilder RBBIRuleBuilder_3_2
-#define RBBIRuleScanner RBBIRuleScanner_3_2
-#define RBBISetBuilder RBBISetBuilder_3_2
-#define RBBIStateDescriptor RBBIStateDescriptor_3_2
-#define RBBISymbolTable RBBISymbolTable_3_2
-#define RBBISymbolTableEntry RBBISymbolTableEntry_3_2
-#define RBBITableBuilder RBBITableBuilder_3_2
-#define RangeDescriptor RangeDescriptor_3_2
-#define RegexCompile RegexCompile_3_2
-#define RegexMatcher RegexMatcher_3_2
-#define RegexPattern RegexPattern_3_2
-#define RegexStaticSets RegexStaticSets_3_2
-#define RemoveTransliterator RemoveTransliterator_3_2
-#define Replaceable Replaceable_3_2
-#define ReplaceableGlue ReplaceableGlue_3_2
-#define ResourceBundle ResourceBundle_3_2
-#define RiseSetCoordFunc RiseSetCoordFunc_3_2
-#define RuleBasedBreakIterator RuleBasedBreakIterator_3_2
-#define RuleBasedCollator RuleBasedCollator_3_2
-#define RuleBasedNumberFormat RuleBasedNumberFormat_3_2
-#define RuleBasedTransliterator RuleBasedTransliterator_3_2
-#define RuleCharacterIterator RuleCharacterIterator_3_2
-#define RuleHalf RuleHalf_3_2
-#define RunArray RunArray_3_2
-#define SameValueSubstitution SameValueSubstitution_3_2
-#define ScriptListTable ScriptListTable_3_2
-#define ScriptRunIterator ScriptRunIterator_3_2
-#define ScriptTable ScriptTable_3_2
-#define SearchIterator SearchIterator_3_2
-#define SegmentArrayProcessor SegmentArrayProcessor_3_2
-#define SegmentSingleProcessor SegmentSingleProcessor_3_2
-#define ServiceEnumeration ServiceEnumeration_3_2
-#define ServiceListener ServiceListener_3_2
-#define SimpleArrayProcessor SimpleArrayProcessor_3_2
-#define SimpleDateFormat SimpleDateFormat_3_2
-#define SimpleFactory SimpleFactory_3_2
-#define SimpleLocaleKeyFactory SimpleLocaleKeyFactory_3_2
-#define SimpleNumberFormatFactory SimpleNumberFormatFactory_3_2
-#define SimpleTimeZone SimpleTimeZone_3_2
-#define SinglePositioningFormat1Subtable SinglePositioningFormat1Subtable_3_2
-#define SinglePositioningFormat2Subtable SinglePositioningFormat2Subtable_3_2
-#define SinglePositioningSubtable SinglePositioningSubtable_3_2
-#define SingleSubstitutionFormat1Subtable SingleSubstitutionFormat1Subtable_3_2
-#define SingleSubstitutionFormat2Subtable SingleSubstitutionFormat2Subtable_3_2
-#define SingleSubstitutionSubtable SingleSubstitutionSubtable_3_2
-#define SingleTableProcessor SingleTableProcessor_3_2
-#define Spec Spec_3_2
-#define StateTableProcessor StateTableProcessor_3_2
-#define StringCharacterIterator StringCharacterIterator_3_2
-#define StringEnumeration StringEnumeration_3_2
-#define StringLocalizationInfo StringLocalizationInfo_3_2
-#define StringMatcher StringMatcher_3_2
-#define StringPair StringPair_3_2
-#define StringReplacer StringReplacer_3_2
-#define StringSearch StringSearch_3_2
-#define StyleRuns StyleRuns_3_2
-#define SubstitutionLookup SubstitutionLookup_3_2
-#define SubtableProcessor SubtableProcessor_3_2
-#define SunTimeAngleFunc SunTimeAngleFunc_3_2
-#define SymbolTable SymbolTable_3_2
-#define TZEnumeration TZEnumeration_3_2
-#define ThaiLayoutEngine ThaiLayoutEngine_3_2
-#define ThaiShaping ThaiShaping_3_2
-#define TimeZone TimeZone_3_2
-#define TitlecaseTransliterator TitlecaseTransliterator_3_2
-#define TransliterationRule TransliterationRule_3_2
-#define TransliterationRuleData TransliterationRuleData_3_2
-#define TransliterationRuleSet TransliterationRuleSet_3_2
-#define Transliterator Transliterator_3_2
-#define TransliteratorAlias TransliteratorAlias_3_2
-#define TransliteratorIDParser TransliteratorIDParser_3_2
-#define TransliteratorParser TransliteratorParser_3_2
-#define TransliteratorRegistry TransliteratorRegistry_3_2
-#define TrimmedArrayProcessor TrimmedArrayProcessor_3_2
-#define UCharCharacterIterator UCharCharacterIterator_3_2
-#define UMemory UMemory_3_2
-#define UObject UObject_3_2
-#define UStack UStack_3_2
-#define UStringEnumeration UStringEnumeration_3_2
-#define UVector UVector_3_2
-#define UVector32 UVector32_3_2
-#define UnescapeTransliterator UnescapeTransliterator_3_2
-#define UnicodeArabicOpenTypeLayoutEngine UnicodeArabicOpenTypeLayoutEngine_3_2
-#define UnicodeFilter UnicodeFilter_3_2
-#define UnicodeFunctor UnicodeFunctor_3_2
-#define UnicodeMatcher UnicodeMatcher_3_2
-#define UnicodeNameTransliterator UnicodeNameTransliterator_3_2
-#define UnicodeReplacer UnicodeReplacer_3_2
-#define UnicodeSet UnicodeSet_3_2
-#define UnicodeSetIterator UnicodeSetIterator_3_2
-#define UnicodeString UnicodeString_3_2
-#define UppercaseTransliterator UppercaseTransliterator_3_2
-#define ValueRecord ValueRecord_3_2
-#define ValueRuns ValueRuns_3_2
-#define locale_set_default_internal locale_set_default_internal_3_2
-#define uprv_parseCurrency uprv_parseCurrency_3_2
-#define util64_fromDouble util64_fromDouble_3_2
-#define util64_pow util64_pow_3_2
-#define util64_tou util64_tou_3_2
-#define util64_utoi util64_utoi_3_2
+#define AbsoluteValueSubstitution U_ICU_ENTRY_POINT_RENAME(AbsoluteValueSubstitution)
+#define AlternateSubstitutionSubtable U_ICU_ENTRY_POINT_RENAME(AlternateSubstitutionSubtable)
+#define AnchorTable U_ICU_ENTRY_POINT_RENAME(AnchorTable)
+#define AndConstraint U_ICU_ENTRY_POINT_RENAME(AndConstraint)
+#define AnnualTimeZoneRule U_ICU_ENTRY_POINT_RENAME(AnnualTimeZoneRule)
+#define AnyTransliterator U_ICU_ENTRY_POINT_RENAME(AnyTransliterator)
+#define ArabicOpenTypeLayoutEngine U_ICU_ENTRY_POINT_RENAME(ArabicOpenTypeLayoutEngine)
+#define ArabicShaping U_ICU_ENTRY_POINT_RENAME(ArabicShaping)
+#define ArgExtractor U_ICU_ENTRY_POINT_RENAME(ArgExtractor)
+#define BMPSet U_ICU_ENTRY_POINT_RENAME(BMPSet)
+#define BackwardUTrie2StringIterator U_ICU_ENTRY_POINT_RENAME(BackwardUTrie2StringIterator)
+#define BadCharacterTable U_ICU_ENTRY_POINT_RENAME(BadCharacterTable)
+#define BasicCalendarFactory U_ICU_ENTRY_POINT_RENAME(BasicCalendarFactory)
+#define BasicTimeZone U_ICU_ENTRY_POINT_RENAME(BasicTimeZone)
+#define BinarySearchLookupTable U_ICU_ENTRY_POINT_RENAME(BinarySearchLookupTable)
+#define BoyerMooreSearch U_ICU_ENTRY_POINT_RENAME(BoyerMooreSearch)
+#define BreakIterator U_ICU_ENTRY_POINT_RENAME(BreakIterator)
+#define BreakTransliterator U_ICU_ENTRY_POINT_RENAME(BreakTransliterator)
+#define BuddhistCalendar U_ICU_ENTRY_POINT_RENAME(BuddhistCalendar)
+#define BuildCompactTrieHorizontalNode U_ICU_ENTRY_POINT_RENAME(BuildCompactTrieHorizontalNode)
+#define BuildCompactTrieNode U_ICU_ENTRY_POINT_RENAME(BuildCompactTrieNode)
+#define BuildCompactTrieVerticalNode U_ICU_ENTRY_POINT_RENAME(BuildCompactTrieVerticalNode)
+#define BuilderScriptSet U_ICU_ENTRY_POINT_RENAME(BuilderScriptSet)
+#define ByteSink U_ICU_ENTRY_POINT_RENAME(ByteSink)
+#define CEBuffer U_ICU_ENTRY_POINT_RENAME(CEBuffer)
+#define CECalendar U_ICU_ENTRY_POINT_RENAME(CECalendar)
+#define CEList U_ICU_ENTRY_POINT_RENAME(CEList)
+#define CEToStringsMap U_ICU_ENTRY_POINT_RENAME(CEToStringsMap)
+#define CFactory U_ICU_ENTRY_POINT_RENAME(CFactory)
+#define Calendar U_ICU_ENTRY_POINT_RENAME(Calendar)
+#define CalendarAstronomer U_ICU_ENTRY_POINT_RENAME(CalendarAstronomer)
+#define CalendarCache U_ICU_ENTRY_POINT_RENAME(CalendarCache)
+#define CalendarData U_ICU_ENTRY_POINT_RENAME(CalendarData)
+#define CalendarService U_ICU_ENTRY_POINT_RENAME(CalendarService)
+#define CanonIterData U_ICU_ENTRY_POINT_RENAME(CanonIterData)
+#define CanonIterDataSingleton U_ICU_ENTRY_POINT_RENAME(CanonIterDataSingleton)
+#define CanonMarkFilter U_ICU_ENTRY_POINT_RENAME(CanonMarkFilter)
+#define CanonShaping U_ICU_ENTRY_POINT_RENAME(CanonShaping)
+#define CanonicalIterator U_ICU_ENTRY_POINT_RENAME(CanonicalIterator)
+#define CaseMapTransliterator U_ICU_ENTRY_POINT_RENAME(CaseMapTransliterator)
+#define ChainingContextualSubstitutionFormat1Subtable U_ICU_ENTRY_POINT_RENAME(ChainingContextualSubstitutionFormat1Subtable)
+#define ChainingContextualSubstitutionFormat2Subtable U_ICU_ENTRY_POINT_RENAME(ChainingContextualSubstitutionFormat2Subtable)
+#define ChainingContextualSubstitutionFormat3Subtable U_ICU_ENTRY_POINT_RENAME(ChainingContextualSubstitutionFormat3Subtable)
+#define ChainingContextualSubstitutionSubtable U_ICU_ENTRY_POINT_RENAME(ChainingContextualSubstitutionSubtable)
+#define CharString U_ICU_ENTRY_POINT_RENAME(CharString)
+#define CharSubstitutionFilter U_ICU_ENTRY_POINT_RENAME(CharSubstitutionFilter)
+#define CharacterIterator U_ICU_ENTRY_POINT_RENAME(CharacterIterator)
+#define CharacterNode U_ICU_ENTRY_POINT_RENAME(CharacterNode)
+#define CharsetDetector U_ICU_ENTRY_POINT_RENAME(CharsetDetector)
+#define CharsetMatch U_ICU_ENTRY_POINT_RENAME(CharsetMatch)
+#define CharsetRecog_2022 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_2022)
+#define CharsetRecog_2022CN U_ICU_ENTRY_POINT_RENAME(CharsetRecog_2022CN)
+#define CharsetRecog_2022JP U_ICU_ENTRY_POINT_RENAME(CharsetRecog_2022JP)
+#define CharsetRecog_2022KR U_ICU_ENTRY_POINT_RENAME(CharsetRecog_2022KR)
+#define CharsetRecog_8859_1 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_1)
+#define CharsetRecog_8859_1_da U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_1_da)
+#define CharsetRecog_8859_1_de U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_1_de)
+#define CharsetRecog_8859_1_en U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_1_en)
+#define CharsetRecog_8859_1_es U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_1_es)
+#define CharsetRecog_8859_1_fr U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_1_fr)
+#define CharsetRecog_8859_1_it U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_1_it)
+#define CharsetRecog_8859_1_nl U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_1_nl)
+#define CharsetRecog_8859_1_no U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_1_no)
+#define CharsetRecog_8859_1_pt U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_1_pt)
+#define CharsetRecog_8859_1_sv U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_1_sv)
+#define CharsetRecog_8859_2 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_2)
+#define CharsetRecog_8859_2_cs U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_2_cs)
+#define CharsetRecog_8859_2_hu U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_2_hu)
+#define CharsetRecog_8859_2_pl U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_2_pl)
+#define CharsetRecog_8859_2_ro U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_2_ro)
+#define CharsetRecog_8859_5 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_5)
+#define CharsetRecog_8859_5_ru U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_5_ru)
+#define CharsetRecog_8859_6 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_6)
+#define CharsetRecog_8859_6_ar U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_6_ar)
+#define CharsetRecog_8859_7 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_7)
+#define CharsetRecog_8859_7_el U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_7_el)
+#define CharsetRecog_8859_8 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_8)
+#define CharsetRecog_8859_8_I_he U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_8_I_he)
+#define CharsetRecog_8859_8_he U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_8_he)
+#define CharsetRecog_8859_9 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_9)
+#define CharsetRecog_8859_9_tr U_ICU_ENTRY_POINT_RENAME(CharsetRecog_8859_9_tr)
+#define CharsetRecog_IBM420_ar U_ICU_ENTRY_POINT_RENAME(CharsetRecog_IBM420_ar)
+#define CharsetRecog_IBM420_ar_ltr U_ICU_ENTRY_POINT_RENAME(CharsetRecog_IBM420_ar_ltr)
+#define CharsetRecog_IBM420_ar_rtl U_ICU_ENTRY_POINT_RENAME(CharsetRecog_IBM420_ar_rtl)
+#define CharsetRecog_IBM424_he U_ICU_ENTRY_POINT_RENAME(CharsetRecog_IBM424_he)
+#define CharsetRecog_IBM424_he_ltr U_ICU_ENTRY_POINT_RENAME(CharsetRecog_IBM424_he_ltr)
+#define CharsetRecog_IBM424_he_rtl U_ICU_ENTRY_POINT_RENAME(CharsetRecog_IBM424_he_rtl)
+#define CharsetRecog_KOI8_R U_ICU_ENTRY_POINT_RENAME(CharsetRecog_KOI8_R)
+#define CharsetRecog_UTF8 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_UTF8)
+#define CharsetRecog_UTF_16_BE U_ICU_ENTRY_POINT_RENAME(CharsetRecog_UTF_16_BE)
+#define CharsetRecog_UTF_16_LE U_ICU_ENTRY_POINT_RENAME(CharsetRecog_UTF_16_LE)
+#define CharsetRecog_UTF_32 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_UTF_32)
+#define CharsetRecog_UTF_32_BE U_ICU_ENTRY_POINT_RENAME(CharsetRecog_UTF_32_BE)
+#define CharsetRecog_UTF_32_LE U_ICU_ENTRY_POINT_RENAME(CharsetRecog_UTF_32_LE)
+#define CharsetRecog_Unicode U_ICU_ENTRY_POINT_RENAME(CharsetRecog_Unicode)
+#define CharsetRecog_big5 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_big5)
+#define CharsetRecog_euc U_ICU_ENTRY_POINT_RENAME(CharsetRecog_euc)
+#define CharsetRecog_euc_jp U_ICU_ENTRY_POINT_RENAME(CharsetRecog_euc_jp)
+#define CharsetRecog_euc_kr U_ICU_ENTRY_POINT_RENAME(CharsetRecog_euc_kr)
+#define CharsetRecog_gb_18030 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_gb_18030)
+#define CharsetRecog_mbcs U_ICU_ENTRY_POINT_RENAME(CharsetRecog_mbcs)
+#define CharsetRecog_sbcs U_ICU_ENTRY_POINT_RENAME(CharsetRecog_sbcs)
+#define CharsetRecog_sjis U_ICU_ENTRY_POINT_RENAME(CharsetRecog_sjis)
+#define CharsetRecog_windows_1251 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_windows_1251)
+#define CharsetRecog_windows_1256 U_ICU_ENTRY_POINT_RENAME(CharsetRecog_windows_1256)
+#define CharsetRecognizer U_ICU_ENTRY_POINT_RENAME(CharsetRecognizer)
+#define CheckedArrayByteSink U_ICU_ENTRY_POINT_RENAME(CheckedArrayByteSink)
+#define ChineseCalendar U_ICU_ENTRY_POINT_RENAME(ChineseCalendar)
+#define ChoiceFormat U_ICU_ENTRY_POINT_RENAME(ChoiceFormat)
+#define ClassDefFormat1Table U_ICU_ENTRY_POINT_RENAME(ClassDefFormat1Table)
+#define ClassDefFormat2Table U_ICU_ENTRY_POINT_RENAME(ClassDefFormat2Table)
+#define ClassDefinitionTable U_ICU_ENTRY_POINT_RENAME(ClassDefinitionTable)
+#define ClockMath U_ICU_ENTRY_POINT_RENAME(ClockMath)
+#define CollData U_ICU_ENTRY_POINT_RENAME(CollData)
+#define CollDataCache U_ICU_ENTRY_POINT_RENAME(CollDataCache)
+#define CollDataCacheEntry U_ICU_ENTRY_POINT_RENAME(CollDataCacheEntry)
+#define CollationElementIterator U_ICU_ENTRY_POINT_RENAME(CollationElementIterator)
+#define CollationKey U_ICU_ENTRY_POINT_RENAME(CollationKey)
+#define CollationLocaleListEnumeration U_ICU_ENTRY_POINT_RENAME(CollationLocaleListEnumeration)
+#define Collator U_ICU_ENTRY_POINT_RENAME(Collator)
+#define CollatorFactory U_ICU_ENTRY_POINT_RENAME(CollatorFactory)
+#define CompactTrieDictionary U_ICU_ENTRY_POINT_RENAME(CompactTrieDictionary)
+#define CompactTrieEnumeration U_ICU_ENTRY_POINT_RENAME(CompactTrieEnumeration)
+#define ComposeNormalizer2 U_ICU_ENTRY_POINT_RENAME(ComposeNormalizer2)
+#define CompoundTransliterator U_ICU_ENTRY_POINT_RENAME(CompoundTransliterator)
+#define ConfusabledataBuilder U_ICU_ENTRY_POINT_RENAME(ConfusabledataBuilder)
+#define ContextualGlyphSubstitutionProcessor U_ICU_ENTRY_POINT_RENAME(ContextualGlyphSubstitutionProcessor)
+#define ContextualSubstitutionBase U_ICU_ENTRY_POINT_RENAME(ContextualSubstitutionBase)
+#define ContextualSubstitutionFormat1Subtable U_ICU_ENTRY_POINT_RENAME(ContextualSubstitutionFormat1Subtable)
+#define ContextualSubstitutionFormat2Subtable U_ICU_ENTRY_POINT_RENAME(ContextualSubstitutionFormat2Subtable)
+#define ContextualSubstitutionFormat3Subtable U_ICU_ENTRY_POINT_RENAME(ContextualSubstitutionFormat3Subtable)
+#define ContextualSubstitutionSubtable U_ICU_ENTRY_POINT_RENAME(ContextualSubstitutionSubtable)
+#define CopticCalendar U_ICU_ENTRY_POINT_RENAME(CopticCalendar)
+#define CoverageFormat1Table U_ICU_ENTRY_POINT_RENAME(CoverageFormat1Table)
+#define CoverageFormat2Table U_ICU_ENTRY_POINT_RENAME(CoverageFormat2Table)
+#define CoverageTable U_ICU_ENTRY_POINT_RENAME(CoverageTable)
+#define CurrencyAmount U_ICU_ENTRY_POINT_RENAME(CurrencyAmount)
+#define CurrencyFormat U_ICU_ENTRY_POINT_RENAME(CurrencyFormat)
+#define CurrencyPluralInfo U_ICU_ENTRY_POINT_RENAME(CurrencyPluralInfo)
+#define CurrencyUnit U_ICU_ENTRY_POINT_RENAME(CurrencyUnit)
+#define CursiveAttachmentSubtable U_ICU_ENTRY_POINT_RENAME(CursiveAttachmentSubtable)
+#define DTRedundantEnumeration U_ICU_ENTRY_POINT_RENAME(DTRedundantEnumeration)
+#define DTSkeletonEnumeration U_ICU_ENTRY_POINT_RENAME(DTSkeletonEnumeration)
+#define DateFormat U_ICU_ENTRY_POINT_RENAME(DateFormat)
+#define DateFormatSymbols U_ICU_ENTRY_POINT_RENAME(DateFormatSymbols)
+#define DateInterval U_ICU_ENTRY_POINT_RENAME(DateInterval)
+#define DateIntervalFormat U_ICU_ENTRY_POINT_RENAME(DateIntervalFormat)
+#define DateIntervalInfo U_ICU_ENTRY_POINT_RENAME(DateIntervalInfo)
+#define DateTimeMatcher U_ICU_ENTRY_POINT_RENAME(DateTimeMatcher)
+#define DateTimePatternGenerator U_ICU_ENTRY_POINT_RENAME(DateTimePatternGenerator)
+#define DateTimeRule U_ICU_ENTRY_POINT_RENAME(DateTimeRule)
+#define DecimalFormat U_ICU_ENTRY_POINT_RENAME(DecimalFormat)
+#define DecimalFormatSymbols U_ICU_ENTRY_POINT_RENAME(DecimalFormatSymbols)
+#define DecomposeNormalizer2 U_ICU_ENTRY_POINT_RENAME(DecomposeNormalizer2)
+#define DefaultCalendarFactory U_ICU_ENTRY_POINT_RENAME(DefaultCalendarFactory)
+#define DefaultCharMapper U_ICU_ENTRY_POINT_RENAME(DefaultCharMapper)
+#define DeviceTable U_ICU_ENTRY_POINT_RENAME(DeviceTable)
+#define DictionaryBreakEngine U_ICU_ENTRY_POINT_RENAME(DictionaryBreakEngine)
+#define DigitList U_ICU_ENTRY_POINT_RENAME(DigitList)
+#define DistanceInfo U_ICU_ENTRY_POINT_RENAME(DistanceInfo)
+#define EnumToOffset U_ICU_ENTRY_POINT_RENAME(EnumToOffset)
+#define ErrorCode U_ICU_ENTRY_POINT_RENAME(ErrorCode)
+#define EscapeTransliterator U_ICU_ENTRY_POINT_RENAME(EscapeTransliterator)
+#define EthiopicCalendar U_ICU_ENTRY_POINT_RENAME(EthiopicCalendar)
+#define EventListener U_ICU_ENTRY_POINT_RENAME(EventListener)
+#define ExtensionSubtable U_ICU_ENTRY_POINT_RENAME(ExtensionSubtable)
+#define FCDNormalizer2 U_ICU_ENTRY_POINT_RENAME(FCDNormalizer2)
+#define FCDTrieSingleton U_ICU_ENTRY_POINT_RENAME(FCDTrieSingleton)
+#define FeatureListTable U_ICU_ENTRY_POINT_RENAME(FeatureListTable)
+#define FieldPosition U_ICU_ENTRY_POINT_RENAME(FieldPosition)
+#define FieldPositionHandler U_ICU_ENTRY_POINT_RENAME(FieldPositionHandler)
+#define FieldPositionIterator U_ICU_ENTRY_POINT_RENAME(FieldPositionIterator)
+#define FieldPositionIteratorHandler U_ICU_ENTRY_POINT_RENAME(FieldPositionIteratorHandler)
+#define FieldPositionOnlyHandler U_ICU_ENTRY_POINT_RENAME(FieldPositionOnlyHandler)
+#define FilteredNormalizer2 U_ICU_ENTRY_POINT_RENAME(FilteredNormalizer2)
+#define FontRuns U_ICU_ENTRY_POINT_RENAME(FontRuns)
+#define Format U_ICU_ENTRY_POINT_RENAME(Format)
+#define Format1AnchorTable U_ICU_ENTRY_POINT_RENAME(Format1AnchorTable)
+#define Format2AnchorTable U_ICU_ENTRY_POINT_RENAME(Format2AnchorTable)
+#define Format3AnchorTable U_ICU_ENTRY_POINT_RENAME(Format3AnchorTable)
+#define FormatNameEnumeration U_ICU_ENTRY_POINT_RENAME(FormatNameEnumeration)
+#define FormatParser U_ICU_ENTRY_POINT_RENAME(FormatParser)
+#define Formattable U_ICU_ENTRY_POINT_RENAME(Formattable)
+#define ForwardCharacterIterator U_ICU_ENTRY_POINT_RENAME(ForwardCharacterIterator)
+#define ForwardUTrie2StringIterator U_ICU_ENTRY_POINT_RENAME(ForwardUTrie2StringIterator)
+#define FractionalPartSubstitution U_ICU_ENTRY_POINT_RENAME(FractionalPartSubstitution)
+#define FunctionReplacer U_ICU_ENTRY_POINT_RENAME(FunctionReplacer)
+#define GDEFMarkFilter U_ICU_ENTRY_POINT_RENAME(GDEFMarkFilter)
+#define GXLayoutEngine U_ICU_ENTRY_POINT_RENAME(GXLayoutEngine)
+#define GlyphDefinitionTableHeader U_ICU_ENTRY_POINT_RENAME(GlyphDefinitionTableHeader)
+#define GlyphIterator U_ICU_ENTRY_POINT_RENAME(GlyphIterator)
+#define GlyphLookupTableHeader U_ICU_ENTRY_POINT_RENAME(GlyphLookupTableHeader)
+#define GlyphPositionAdjustments U_ICU_ENTRY_POINT_RENAME(GlyphPositionAdjustments)
+#define GlyphPositioningLookupProcessor U_ICU_ENTRY_POINT_RENAME(GlyphPositioningLookupProcessor)
+#define GlyphPositioningTableHeader U_ICU_ENTRY_POINT_RENAME(GlyphPositioningTableHeader)
+#define GlyphSubstitutionLookupProcessor U_ICU_ENTRY_POINT_RENAME(GlyphSubstitutionLookupProcessor)
+#define GlyphSubstitutionTableHeader U_ICU_ENTRY_POINT_RENAME(GlyphSubstitutionTableHeader)
+#define GoodSuffixTable U_ICU_ENTRY_POINT_RENAME(GoodSuffixTable)
+#define Grego U_ICU_ENTRY_POINT_RENAME(Grego)
+#define GregorianCalendar U_ICU_ENTRY_POINT_RENAME(GregorianCalendar)
+#define HanOpenTypeLayoutEngine U_ICU_ENTRY_POINT_RENAME(HanOpenTypeLayoutEngine)
+#define HangulOpenTypeLayoutEngine U_ICU_ENTRY_POINT_RENAME(HangulOpenTypeLayoutEngine)
+#define HebrewCalendar U_ICU_ENTRY_POINT_RENAME(HebrewCalendar)
+#define ICUBreakIteratorFactory U_ICU_ENTRY_POINT_RENAME(ICUBreakIteratorFactory)
+#define ICUBreakIteratorService U_ICU_ENTRY_POINT_RENAME(ICUBreakIteratorService)
+#define ICUCollatorFactory U_ICU_ENTRY_POINT_RENAME(ICUCollatorFactory)
+#define ICUCollatorService U_ICU_ENTRY_POINT_RENAME(ICUCollatorService)
+#define ICUDataTable U_ICU_ENTRY_POINT_RENAME(ICUDataTable)
+#define ICULanguageBreakFactory U_ICU_ENTRY_POINT_RENAME(ICULanguageBreakFactory)
+#define ICULocaleService U_ICU_ENTRY_POINT_RENAME(ICULocaleService)
+#define ICUNotifier U_ICU_ENTRY_POINT_RENAME(ICUNotifier)
+#define ICUNumberFormatFactory U_ICU_ENTRY_POINT_RENAME(ICUNumberFormatFactory)
+#define ICUNumberFormatService U_ICU_ENTRY_POINT_RENAME(ICUNumberFormatService)
+#define ICUResourceBundleFactory U_ICU_ENTRY_POINT_RENAME(ICUResourceBundleFactory)
+#define ICUService U_ICU_ENTRY_POINT_RENAME(ICUService)
+#define ICUServiceFactory U_ICU_ENTRY_POINT_RENAME(ICUServiceFactory)
+#define ICUServiceKey U_ICU_ENTRY_POINT_RENAME(ICUServiceKey)
+#define ICU_Utility U_ICU_ENTRY_POINT_RENAME(ICU_Utility)
+#define IDNA U_ICU_ENTRY_POINT_RENAME(IDNA)
+#define IndianCalendar U_ICU_ENTRY_POINT_RENAME(IndianCalendar)
+#define IndicClassTable U_ICU_ENTRY_POINT_RENAME(IndicClassTable)
+#define IndicOpenTypeLayoutEngine U_ICU_ENTRY_POINT_RENAME(IndicOpenTypeLayoutEngine)
+#define IndicRearrangementProcessor U_ICU_ENTRY_POINT_RENAME(IndicRearrangementProcessor)
+#define IndicReordering U_ICU_ENTRY_POINT_RENAME(IndicReordering)
+#define InitialTimeZoneRule U_ICU_ENTRY_POINT_RENAME(InitialTimeZoneRule)
+#define InputText U_ICU_ENTRY_POINT_RENAME(InputText)
+#define IntegralPartSubstitution U_ICU_ENTRY_POINT_RENAME(IntegralPartSubstitution)
+#define IslamicCalendar U_ICU_ENTRY_POINT_RENAME(IslamicCalendar)
+#define IteratedChar U_ICU_ENTRY_POINT_RENAME(IteratedChar)
+#define JapaneseCalendar U_ICU_ENTRY_POINT_RENAME(JapaneseCalendar)
+#define KernTable U_ICU_ENTRY_POINT_RENAME(KernTable)
+#define KeywordEnumeration U_ICU_ENTRY_POINT_RENAME(KeywordEnumeration)
+#define KhmerClassTable U_ICU_ENTRY_POINT_RENAME(KhmerClassTable)
+#define KhmerOpenTypeLayoutEngine U_ICU_ENTRY_POINT_RENAME(KhmerOpenTypeLayoutEngine)
+#define KhmerReordering U_ICU_ENTRY_POINT_RENAME(KhmerReordering)
+#define LECharMapper U_ICU_ENTRY_POINT_RENAME(LECharMapper)
+#define LEFontInstance U_ICU_ENTRY_POINT_RENAME(LEFontInstance)
+#define LEGlyphFilter U_ICU_ENTRY_POINT_RENAME(LEGlyphFilter)
+#define LEGlyphStorage U_ICU_ENTRY_POINT_RENAME(LEGlyphStorage)
+#define LEInsertionCallback U_ICU_ENTRY_POINT_RENAME(LEInsertionCallback)
+#define LEInsertionList U_ICU_ENTRY_POINT_RENAME(LEInsertionList)
+#define LXUtilities U_ICU_ENTRY_POINT_RENAME(LXUtilities)
+#define LanguageBreakEngine U_ICU_ENTRY_POINT_RENAME(LanguageBreakEngine)
+#define LanguageBreakFactory U_ICU_ENTRY_POINT_RENAME(LanguageBreakFactory)
+#define LayoutEngine U_ICU_ENTRY_POINT_RENAME(LayoutEngine)
+#define LigatureSubstitutionProcessor U_ICU_ENTRY_POINT_RENAME(LigatureSubstitutionProcessor)
+#define LigatureSubstitutionSubtable U_ICU_ENTRY_POINT_RENAME(LigatureSubstitutionSubtable)
+#define LocDataParser U_ICU_ENTRY_POINT_RENAME(LocDataParser)
+#define Locale U_ICU_ENTRY_POINT_RENAME(Locale)
+#define LocaleBased U_ICU_ENTRY_POINT_RENAME(LocaleBased)
+#define LocaleDisplayNames U_ICU_ENTRY_POINT_RENAME(LocaleDisplayNames)
+#define LocaleDisplayNamesImpl U_ICU_ENTRY_POINT_RENAME(LocaleDisplayNamesImpl)
+#define LocaleKey U_ICU_ENTRY_POINT_RENAME(LocaleKey)
+#define LocaleKeyFactory U_ICU_ENTRY_POINT_RENAME(LocaleKeyFactory)
+#define LocaleRuns U_ICU_ENTRY_POINT_RENAME(LocaleRuns)
+#define LocaleUtility U_ICU_ENTRY_POINT_RENAME(LocaleUtility)
+#define LocalizationInfo U_ICU_ENTRY_POINT_RENAME(LocalizationInfo)
+#define LookupListTable U_ICU_ENTRY_POINT_RENAME(LookupListTable)
+#define LookupProcessor U_ICU_ENTRY_POINT_RENAME(LookupProcessor)
+#define LookupSubtable U_ICU_ENTRY_POINT_RENAME(LookupSubtable)
+#define LookupTable U_ICU_ENTRY_POINT_RENAME(LookupTable)
+#define LowercaseTransliterator U_ICU_ENTRY_POINT_RENAME(LowercaseTransliterator)
+#define MPreFixups U_ICU_ENTRY_POINT_RENAME(MPreFixups)
+#define MarkArray U_ICU_ENTRY_POINT_RENAME(MarkArray)
+#define MarkToBasePositioningSubtable U_ICU_ENTRY_POINT_RENAME(MarkToBasePositioningSubtable)
+#define MarkToLigaturePositioningSubtable U_ICU_ENTRY_POINT_RENAME(MarkToLigaturePositioningSubtable)
+#define MarkToMarkPositioningSubtable U_ICU_ENTRY_POINT_RENAME(MarkToMarkPositioningSubtable)
+#define Measure U_ICU_ENTRY_POINT_RENAME(Measure)
+#define MeasureFormat U_ICU_ENTRY_POINT_RENAME(MeasureFormat)
+#define MeasureUnit U_ICU_ENTRY_POINT_RENAME(MeasureUnit)
+#define MessageFormat U_ICU_ENTRY_POINT_RENAME(MessageFormat)
+#define MessageFormatAdapter U_ICU_ENTRY_POINT_RENAME(MessageFormatAdapter)
+#define ModulusSubstitution U_ICU_ENTRY_POINT_RENAME(ModulusSubstitution)
+#define MoonRiseSetCoordFunc U_ICU_ENTRY_POINT_RENAME(MoonRiseSetCoordFunc)
+#define MoonTimeAngleFunc U_ICU_ENTRY_POINT_RENAME(MoonTimeAngleFunc)
+#define MorphSubtableHeader U_ICU_ENTRY_POINT_RENAME(MorphSubtableHeader)
+#define MorphTableHeader U_ICU_ENTRY_POINT_RENAME(MorphTableHeader)
+#define MultipleSubstitutionSubtable U_ICU_ENTRY_POINT_RENAME(MultipleSubstitutionSubtable)
+#define MultiplierSubstitution U_ICU_ENTRY_POINT_RENAME(MultiplierSubstitution)
+#define MutableTrieDictionary U_ICU_ENTRY_POINT_RENAME(MutableTrieDictionary)
+#define MutableTrieEnumeration U_ICU_ENTRY_POINT_RENAME(MutableTrieEnumeration)
+#define NFFactory U_ICU_ENTRY_POINT_RENAME(NFFactory)
+#define NFKDBuffer U_ICU_ENTRY_POINT_RENAME(NFKDBuffer)
+#define NFRule U_ICU_ENTRY_POINT_RENAME(NFRule)
+#define NFRuleSet U_ICU_ENTRY_POINT_RENAME(NFRuleSet)
+#define NFSubstitution U_ICU_ENTRY_POINT_RENAME(NFSubstitution)
+#define NGramParser U_ICU_ENTRY_POINT_RENAME(NGramParser)
+#define NameToEnum U_ICU_ENTRY_POINT_RENAME(NameToEnum)
+#define NameUnicodeTransliterator U_ICU_ENTRY_POINT_RENAME(NameUnicodeTransliterator)
+#define NonContextualGlyphSubstitutionProcessor U_ICU_ENTRY_POINT_RENAME(NonContextualGlyphSubstitutionProcessor)
+#define NonContiguousEnumToOffset U_ICU_ENTRY_POINT_RENAME(NonContiguousEnumToOffset)
+#define NoopNormalizer2 U_ICU_ENTRY_POINT_RENAME(NoopNormalizer2)
+#define Norm2AllModes U_ICU_ENTRY_POINT_RENAME(Norm2AllModes)
+#define NormalizationTransliterator U_ICU_ENTRY_POINT_RENAME(NormalizationTransliterator)
+#define Normalizer U_ICU_ENTRY_POINT_RENAME(Normalizer)
+#define Normalizer2 U_ICU_ENTRY_POINT_RENAME(Normalizer2)
+#define Normalizer2Factory U_ICU_ENTRY_POINT_RENAME(Normalizer2Factory)
+#define Normalizer2Impl U_ICU_ENTRY_POINT_RENAME(Normalizer2Impl)
+#define Normalizer2WithImpl U_ICU_ENTRY_POINT_RENAME(Normalizer2WithImpl)
+#define NullSubstitution U_ICU_ENTRY_POINT_RENAME(NullSubstitution)
+#define NullTransliterator U_ICU_ENTRY_POINT_RENAME(NullTransliterator)
+#define NumberFormat U_ICU_ENTRY_POINT_RENAME(NumberFormat)
+#define NumberFormatFactory U_ICU_ENTRY_POINT_RENAME(NumberFormatFactory)
+#define NumberingSystem U_ICU_ENTRY_POINT_RENAME(NumberingSystem)
+#define NumeratorSubstitution U_ICU_ENTRY_POINT_RENAME(NumeratorSubstitution)
+#define OlsonTimeZone U_ICU_ENTRY_POINT_RENAME(OlsonTimeZone)
+#define OpenTypeLayoutEngine U_ICU_ENTRY_POINT_RENAME(OpenTypeLayoutEngine)
+#define OpenTypeUtilities U_ICU_ENTRY_POINT_RENAME(OpenTypeUtilities)
+#define OrConstraint U_ICU_ENTRY_POINT_RENAME(OrConstraint)
+#define PCEBuffer U_ICU_ENTRY_POINT_RENAME(PCEBuffer)
+#define PairPositioningFormat1Subtable U_ICU_ENTRY_POINT_RENAME(PairPositioningFormat1Subtable)
+#define PairPositioningFormat2Subtable U_ICU_ENTRY_POINT_RENAME(PairPositioningFormat2Subtable)
+#define PairPositioningSubtable U_ICU_ENTRY_POINT_RENAME(PairPositioningSubtable)
+#define ParagraphLayout U_ICU_ENTRY_POINT_RENAME(ParagraphLayout)
+#define ParseData U_ICU_ENTRY_POINT_RENAME(ParseData)
+#define ParsePosition U_ICU_ENTRY_POINT_RENAME(ParsePosition)
+#define PatternMap U_ICU_ENTRY_POINT_RENAME(PatternMap)
+#define PatternMapIterator U_ICU_ENTRY_POINT_RENAME(PatternMapIterator)
+#define PersianCalendar U_ICU_ENTRY_POINT_RENAME(PersianCalendar)
+#define PluralFormat U_ICU_ENTRY_POINT_RENAME(PluralFormat)
+#define PluralKeywordEnumeration U_ICU_ENTRY_POINT_RENAME(PluralKeywordEnumeration)
+#define PluralRules U_ICU_ENTRY_POINT_RENAME(PluralRules)
+#define PropertyAliases U_ICU_ENTRY_POINT_RENAME(PropertyAliases)
+#define PtnElem U_ICU_ENTRY_POINT_RENAME(PtnElem)
+#define PtnSkeleton U_ICU_ENTRY_POINT_RENAME(PtnSkeleton)
+#define Quantifier U_ICU_ENTRY_POINT_RENAME(Quantifier)
+#define RBBIDataWrapper U_ICU_ENTRY_POINT_RENAME(RBBIDataWrapper)
+#define RBBINode U_ICU_ENTRY_POINT_RENAME(RBBINode)
+#define RBBIRuleBuilder U_ICU_ENTRY_POINT_RENAME(RBBIRuleBuilder)
+#define RBBIRuleScanner U_ICU_ENTRY_POINT_RENAME(RBBIRuleScanner)
+#define RBBISetBuilder U_ICU_ENTRY_POINT_RENAME(RBBISetBuilder)
+#define RBBIStateDescriptor U_ICU_ENTRY_POINT_RENAME(RBBIStateDescriptor)
+#define RBBISymbolTable U_ICU_ENTRY_POINT_RENAME(RBBISymbolTable)
+#define RBBISymbolTableEntry U_ICU_ENTRY_POINT_RENAME(RBBISymbolTableEntry)
+#define RBBITableBuilder U_ICU_ENTRY_POINT_RENAME(RBBITableBuilder)
+#define RCEBuffer U_ICU_ENTRY_POINT_RENAME(RCEBuffer)
+#define RangeDescriptor U_ICU_ENTRY_POINT_RENAME(RangeDescriptor)
+#define RegexCompile U_ICU_ENTRY_POINT_RENAME(RegexCompile)
+#define RegexMatcher U_ICU_ENTRY_POINT_RENAME(RegexMatcher)
+#define RegexPattern U_ICU_ENTRY_POINT_RENAME(RegexPattern)
+#define RegexStaticSets U_ICU_ENTRY_POINT_RENAME(RegexStaticSets)
+#define RegularExpression U_ICU_ENTRY_POINT_RENAME(RegularExpression)
+#define RelativeDateFormat U_ICU_ENTRY_POINT_RENAME(RelativeDateFormat)
+#define RemoveTransliterator U_ICU_ENTRY_POINT_RENAME(RemoveTransliterator)
+#define ReorderingBuffer U_ICU_ENTRY_POINT_RENAME(ReorderingBuffer)
+#define Replaceable U_ICU_ENTRY_POINT_RENAME(Replaceable)
+#define ReplaceableGlue U_ICU_ENTRY_POINT_RENAME(ReplaceableGlue)
+#define ResourceBundle U_ICU_ENTRY_POINT_RENAME(ResourceBundle)
+#define RiseSetCoordFunc U_ICU_ENTRY_POINT_RENAME(RiseSetCoordFunc)
+#define RuleBasedBreakIterator U_ICU_ENTRY_POINT_RENAME(RuleBasedBreakIterator)
+#define RuleBasedCollator U_ICU_ENTRY_POINT_RENAME(RuleBasedCollator)
+#define RuleBasedNumberFormat U_ICU_ENTRY_POINT_RENAME(RuleBasedNumberFormat)
+#define RuleBasedTimeZone U_ICU_ENTRY_POINT_RENAME(RuleBasedTimeZone)
+#define RuleBasedTransliterator U_ICU_ENTRY_POINT_RENAME(RuleBasedTransliterator)
+#define RuleChain U_ICU_ENTRY_POINT_RENAME(RuleChain)
+#define RuleCharacterIterator U_ICU_ENTRY_POINT_RENAME(RuleCharacterIterator)
+#define RuleHalf U_ICU_ENTRY_POINT_RENAME(RuleHalf)
+#define RuleParser U_ICU_ENTRY_POINT_RENAME(RuleParser)
+#define RunArray U_ICU_ENTRY_POINT_RENAME(RunArray)
+#define SPUString U_ICU_ENTRY_POINT_RENAME(SPUString)
+#define SPUStringPool U_ICU_ENTRY_POINT_RENAME(SPUStringPool)
+#define SafeZoneStringFormatPtr U_ICU_ENTRY_POINT_RENAME(SafeZoneStringFormatPtr)
+#define SameValueSubstitution U_ICU_ENTRY_POINT_RENAME(SameValueSubstitution)
+#define ScriptListTable U_ICU_ENTRY_POINT_RENAME(ScriptListTable)
+#define ScriptRunIterator U_ICU_ENTRY_POINT_RENAME(ScriptRunIterator)
+#define ScriptSet U_ICU_ENTRY_POINT_RENAME(ScriptSet)
+#define ScriptTable U_ICU_ENTRY_POINT_RENAME(ScriptTable)
+#define SearchIterator U_ICU_ENTRY_POINT_RENAME(SearchIterator)
+#define SegmentArrayProcessor U_ICU_ENTRY_POINT_RENAME(SegmentArrayProcessor)
+#define SegmentSingleProcessor U_ICU_ENTRY_POINT_RENAME(SegmentSingleProcessor)
+#define SelectFormat U_ICU_ENTRY_POINT_RENAME(SelectFormat)
+#define ServiceEnumeration U_ICU_ENTRY_POINT_RENAME(ServiceEnumeration)
+#define ServiceListener U_ICU_ENTRY_POINT_RENAME(ServiceListener)
+#define SimpleArrayProcessor U_ICU_ENTRY_POINT_RENAME(SimpleArrayProcessor)
+#define SimpleDateFormat U_ICU_ENTRY_POINT_RENAME(SimpleDateFormat)
+#define SimpleFactory U_ICU_ENTRY_POINT_RENAME(SimpleFactory)
+#define SimpleLocaleKeyFactory U_ICU_ENTRY_POINT_RENAME(SimpleLocaleKeyFactory)
+#define SimpleNumberFormatFactory U_ICU_ENTRY_POINT_RENAME(SimpleNumberFormatFactory)
+#define SimpleSingleton U_ICU_ENTRY_POINT_RENAME(SimpleSingleton)
+#define SimpleTimeZone U_ICU_ENTRY_POINT_RENAME(SimpleTimeZone)
+#define SinglePositioningFormat1Subtable U_ICU_ENTRY_POINT_RENAME(SinglePositioningFormat1Subtable)
+#define SinglePositioningFormat2Subtable U_ICU_ENTRY_POINT_RENAME(SinglePositioningFormat2Subtable)
+#define SinglePositioningSubtable U_ICU_ENTRY_POINT_RENAME(SinglePositioningSubtable)
+#define SingleSubstitutionFormat1Subtable U_ICU_ENTRY_POINT_RENAME(SingleSubstitutionFormat1Subtable)
+#define SingleSubstitutionFormat2Subtable U_ICU_ENTRY_POINT_RENAME(SingleSubstitutionFormat2Subtable)
+#define SingleSubstitutionSubtable U_ICU_ENTRY_POINT_RENAME(SingleSubstitutionSubtable)
+#define SingleTableProcessor U_ICU_ENTRY_POINT_RENAME(SingleTableProcessor)
+#define SpoofData U_ICU_ENTRY_POINT_RENAME(SpoofData)
+#define SpoofImpl U_ICU_ENTRY_POINT_RENAME(SpoofImpl)
+#define StateTableProcessor U_ICU_ENTRY_POINT_RENAME(StateTableProcessor)
+#define StringCharacterIterator U_ICU_ENTRY_POINT_RENAME(StringCharacterIterator)
+#define StringEnumeration U_ICU_ENTRY_POINT_RENAME(StringEnumeration)
+#define StringList U_ICU_ENTRY_POINT_RENAME(StringList)
+#define StringLocalizationInfo U_ICU_ENTRY_POINT_RENAME(StringLocalizationInfo)
+#define StringMatcher U_ICU_ENTRY_POINT_RENAME(StringMatcher)
+#define StringPair U_ICU_ENTRY_POINT_RENAME(StringPair)
+#define StringPiece U_ICU_ENTRY_POINT_RENAME(StringPiece)
+#define StringReplacer U_ICU_ENTRY_POINT_RENAME(StringReplacer)
+#define StringSearch U_ICU_ENTRY_POINT_RENAME(StringSearch)
+#define StringToCEsMap U_ICU_ENTRY_POINT_RENAME(StringToCEsMap)
+#define StyleRuns U_ICU_ENTRY_POINT_RENAME(StyleRuns)
+#define SubstitutionLookup U_ICU_ENTRY_POINT_RENAME(SubstitutionLookup)
+#define SubtableProcessor U_ICU_ENTRY_POINT_RENAME(SubtableProcessor)
+#define SunTimeAngleFunc U_ICU_ENTRY_POINT_RENAME(SunTimeAngleFunc)
+#define SymbolTable U_ICU_ENTRY_POINT_RENAME(SymbolTable)
+#define TZEnumeration U_ICU_ENTRY_POINT_RENAME(TZEnumeration)
+#define TaiwanCalendar U_ICU_ENTRY_POINT_RENAME(TaiwanCalendar)
+#define Target U_ICU_ENTRY_POINT_RENAME(Target)
+#define TernaryNode U_ICU_ENTRY_POINT_RENAME(TernaryNode)
+#define TextTrieMap U_ICU_ENTRY_POINT_RENAME(TextTrieMap)
+#define TextTrieMapSearchResultHandler U_ICU_ENTRY_POINT_RENAME(TextTrieMapSearchResultHandler)
+#define ThaiBreakEngine U_ICU_ENTRY_POINT_RENAME(ThaiBreakEngine)
+#define ThaiLayoutEngine U_ICU_ENTRY_POINT_RENAME(ThaiLayoutEngine)
+#define ThaiShaping U_ICU_ENTRY_POINT_RENAME(ThaiShaping)
+#define TibetanClassTable U_ICU_ENTRY_POINT_RENAME(TibetanClassTable)
+#define TibetanOpenTypeLayoutEngine U_ICU_ENTRY_POINT_RENAME(TibetanOpenTypeLayoutEngine)
+#define TibetanReordering U_ICU_ENTRY_POINT_RENAME(TibetanReordering)
+#define TimeArrayTimeZoneRule U_ICU_ENTRY_POINT_RENAME(TimeArrayTimeZoneRule)
+#define TimeUnit U_ICU_ENTRY_POINT_RENAME(TimeUnit)
+#define TimeUnitAmount U_ICU_ENTRY_POINT_RENAME(TimeUnitAmount)
+#define TimeUnitFormat U_ICU_ENTRY_POINT_RENAME(TimeUnitFormat)
+#define TimeZone U_ICU_ENTRY_POINT_RENAME(TimeZone)
+#define TimeZoneRule U_ICU_ENTRY_POINT_RENAME(TimeZoneRule)
+#define TimeZoneTransition U_ICU_ENTRY_POINT_RENAME(TimeZoneTransition)
+#define TitlecaseTransliterator U_ICU_ENTRY_POINT_RENAME(TitlecaseTransliterator)
+#define TransliterationRule U_ICU_ENTRY_POINT_RENAME(TransliterationRule)
+#define TransliterationRuleData U_ICU_ENTRY_POINT_RENAME(TransliterationRuleData)
+#define TransliterationRuleSet U_ICU_ENTRY_POINT_RENAME(TransliterationRuleSet)
+#define Transliterator U_ICU_ENTRY_POINT_RENAME(Transliterator)
+#define TransliteratorAlias U_ICU_ENTRY_POINT_RENAME(TransliteratorAlias)
+#define TransliteratorEntry U_ICU_ENTRY_POINT_RENAME(TransliteratorEntry)
+#define TransliteratorIDParser U_ICU_ENTRY_POINT_RENAME(TransliteratorIDParser)
+#define TransliteratorParser U_ICU_ENTRY_POINT_RENAME(TransliteratorParser)
+#define TransliteratorRegistry U_ICU_ENTRY_POINT_RENAME(TransliteratorRegistry)
+#define TransliteratorSpec U_ICU_ENTRY_POINT_RENAME(TransliteratorSpec)
+#define TriStateSingleton U_ICU_ENTRY_POINT_RENAME(TriStateSingleton)
+#define TrieWordDictionary U_ICU_ENTRY_POINT_RENAME(TrieWordDictionary)
+#define TrimmedArrayProcessor U_ICU_ENTRY_POINT_RENAME(TrimmedArrayProcessor)
+#define UCharCharacterIterator U_ICU_ENTRY_POINT_RENAME(UCharCharacterIterator)
+#define UCollationPCE U_ICU_ENTRY_POINT_RENAME(UCollationPCE)
+#define UDataPathIterator U_ICU_ENTRY_POINT_RENAME(UDataPathIterator)
+#define ULocRuns U_ICU_ENTRY_POINT_RENAME(ULocRuns)
+#define UMemory U_ICU_ENTRY_POINT_RENAME(UMemory)
+#define UObject U_ICU_ENTRY_POINT_RENAME(UObject)
+#define UStack U_ICU_ENTRY_POINT_RENAME(UStack)
+#define UStringEnumeration U_ICU_ENTRY_POINT_RENAME(UStringEnumeration)
+#define UTS46 U_ICU_ENTRY_POINT_RENAME(UTS46)
+#define UTrie2Singleton U_ICU_ENTRY_POINT_RENAME(UTrie2Singleton)
+#define UVector U_ICU_ENTRY_POINT_RENAME(UVector)
+#define UVector32 U_ICU_ENTRY_POINT_RENAME(UVector32)
+#define UVector64 U_ICU_ENTRY_POINT_RENAME(UVector64)
+#define UnescapeTransliterator U_ICU_ENTRY_POINT_RENAME(UnescapeTransliterator)
+#define UnhandledEngine U_ICU_ENTRY_POINT_RENAME(UnhandledEngine)
+#define UnicodeArabicOpenTypeLayoutEngine U_ICU_ENTRY_POINT_RENAME(UnicodeArabicOpenTypeLayoutEngine)
+#define UnicodeFilter U_ICU_ENTRY_POINT_RENAME(UnicodeFilter)
+#define UnicodeFunctor U_ICU_ENTRY_POINT_RENAME(UnicodeFunctor)
+#define UnicodeMatcher U_ICU_ENTRY_POINT_RENAME(UnicodeMatcher)
+#define UnicodeNameTransliterator U_ICU_ENTRY_POINT_RENAME(UnicodeNameTransliterator)
+#define UnicodeReplacer U_ICU_ENTRY_POINT_RENAME(UnicodeReplacer)
+#define UnicodeSet U_ICU_ENTRY_POINT_RENAME(UnicodeSet)
+#define UnicodeSetIterator U_ICU_ENTRY_POINT_RENAME(UnicodeSetIterator)
+#define UnicodeSetStringSpan U_ICU_ENTRY_POINT_RENAME(UnicodeSetStringSpan)
+#define UnicodeString U_ICU_ENTRY_POINT_RENAME(UnicodeString)
+#define UppercaseTransliterator U_ICU_ENTRY_POINT_RENAME(UppercaseTransliterator)
+#define VTZReader U_ICU_ENTRY_POINT_RENAME(VTZReader)
+#define VTZWriter U_ICU_ENTRY_POINT_RENAME(VTZWriter)
+#define VTimeZone U_ICU_ENTRY_POINT_RENAME(VTimeZone)
+#define ValueRecord U_ICU_ENTRY_POINT_RENAME(ValueRecord)
+#define ValueRuns U_ICU_ENTRY_POINT_RENAME(ValueRuns)
+#define ZSFCache U_ICU_ENTRY_POINT_RENAME(ZSFCache)
+#define ZSFCacheEntry U_ICU_ENTRY_POINT_RENAME(ZSFCacheEntry)
+#define ZSFStringPool U_ICU_ENTRY_POINT_RENAME(ZSFStringPool)
+#define ZSFStringPoolChunk U_ICU_ENTRY_POINT_RENAME(ZSFStringPoolChunk)
+#define ZoneMeta U_ICU_ENTRY_POINT_RENAME(ZoneMeta)
+#define ZoneStringFormat U_ICU_ENTRY_POINT_RENAME(ZoneStringFormat)
+#define ZoneStringInfo U_ICU_ENTRY_POINT_RENAME(ZoneStringInfo)
+#define ZoneStringSearchResultHandler U_ICU_ENTRY_POINT_RENAME(ZoneStringSearchResultHandler)
+#define ZoneStrings U_ICU_ENTRY_POINT_RENAME(ZoneStrings)
+#define collIterate U_ICU_ENTRY_POINT_RENAME(collIterate)
+#define locale_set_default_internal U_ICU_ENTRY_POINT_RENAME(locale_set_default_internal)
+#define util64_fromDouble U_ICU_ENTRY_POINT_RENAME(util64_fromDouble)
+#define util64_pow U_ICU_ENTRY_POINT_RENAME(util64_pow)
+#define util64_tou U_ICU_ENTRY_POINT_RENAME(util64_tou)
#endif
#endif
diff --git a/Source/WebKit/mac/icu/unicode/uscript.h b/Source/WebKit/mac/icu/unicode/uscript.h
index f31d7480c..ee21c740d 100644
--- a/Source/WebKit/mac/icu/unicode/uscript.h
+++ b/Source/WebKit/mac/icu/unicode/uscript.h
@@ -1,41 +1,63 @@
/*
-**********************************************************************
-* Copyright (C) 1997-2004, International Business Machines
-* Corporation and others. All Rights Reserved.
-**********************************************************************
-*
-* File USCRIPT.H
-*
-* Modification History:
-*
-* Date Name Description
-* 07/06/2001 Ram Creation.
-******************************************************************************
-*/
+ **********************************************************************
+ * Copyright (C) 1997-2010, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ *
+ * File USCRIPT.H
+ *
+ * Modification History:
+ *
+ * Date Name Description
+ * 07/06/2001 Ram Creation.
+ ******************************************************************************
+ */
+
#ifndef USCRIPT_H
#define USCRIPT_H
#include "unicode/utypes.h"
/**
- * Constants for Unicode script values from ScriptNames.txt .
+ * \file
+ * \brief C API: Unicode Script Information
+ */
+
+/**
+ * Constants for ISO 15924 script codes.
+ *
+ * Many of these script codes - those from Unicode's ScriptNames.txt -
+ * are character property values for Unicode's Script property.
+ * See UAX #24 Script Names (http://www.unicode.org/reports/tr24/).
+ *
+ * Starting with ICU 3.6, constants for most ISO 15924 script codes
+ * are included (currently excluding private-use codes Qaaa..Qabx).
+ * For scripts for which there are codes in ISO 15924 but which are not
+ * used in the Unicode Character Database (UCD), there are no Unicode characters
+ * associated with those scripts.
+ *
+ * For example, there are no characters that have a UCD script code of
+ * Hans or Hant. All Han ideographs have the Hani script code.
+ * The Hans and Hant script codes are used with CLDR data.
+ *
+ * ISO 15924 script codes are included for use with CLDR and similar.
*
* @stable ICU 2.2
*/
typedef enum UScriptCode {
USCRIPT_INVALID_CODE = -1,
- USCRIPT_COMMON = 0 , /* Zyyy */
- USCRIPT_INHERITED = 1, /* Qaai */
+ USCRIPT_COMMON = 0, /* Zyyy */
+ USCRIPT_INHERITED = 1, /* Zinh */ /* "Code for inherited script", for non-spacing combining marks; also Qaai */
USCRIPT_ARABIC = 2, /* Arab */
USCRIPT_ARMENIAN = 3, /* Armn */
USCRIPT_BENGALI = 4, /* Beng */
USCRIPT_BOPOMOFO = 5, /* Bopo */
USCRIPT_CHEROKEE = 6, /* Cher */
USCRIPT_COPTIC = 7, /* Copt */
- USCRIPT_CYRILLIC = 8, /* Cyrl (Cyrs) */
+ USCRIPT_CYRILLIC = 8, /* Cyrl */
USCRIPT_DESERET = 9, /* Dsrt */
USCRIPT_DEVANAGARI = 10, /* Deva */
USCRIPT_ETHIOPIC = 11, /* Ethi */
- USCRIPT_GEORGIAN = 12, /* Geor (Geon, Geoa) */
+ USCRIPT_GEORGIAN = 12, /* Geor */
USCRIPT_GOTHIC = 13, /* Goth */
USCRIPT_GREEK = 14, /* Grek */
USCRIPT_GUJARATI = 15, /* Gujr */
@@ -48,7 +70,7 @@ typedef enum UScriptCode {
USCRIPT_KATAKANA = 22, /* Kana */
USCRIPT_KHMER = 23, /* Khmr */
USCRIPT_LAO = 24, /* Laoo */
- USCRIPT_LATIN = 25, /* Latn (Latf, Latg) */
+ USCRIPT_LATIN = 25, /* Latn */
USCRIPT_MALAYALAM = 26, /* Mlym */
USCRIPT_MONGOLIAN = 27, /* Mong */
USCRIPT_MYANMAR = 28, /* Mymr */
@@ -57,7 +79,7 @@ typedef enum UScriptCode {
USCRIPT_ORIYA = 31, /* Orya */
USCRIPT_RUNIC = 32, /* Runr */
USCRIPT_SINHALA = 33, /* Sinh */
- USCRIPT_SYRIAC = 34, /* Syrc (Syrj, Syrn, Syre) */
+ USCRIPT_SYRIAC = 34, /* Syrc */
USCRIPT_TAMIL = 35, /* Taml */
USCRIPT_TELUGU = 36, /* Telu */
USCRIPT_THAANA = 37, /* Thaa */
@@ -74,19 +96,130 @@ typedef enum UScriptCode {
USCRIPT_TAGBANWA = 45, /* Tagb */
/* New scripts in Unicode 4 @stable ICU 2.6 */
- USCRIPT_BRAILLE, /* Brai */
- USCRIPT_CYPRIOT, /* Cprt */
- USCRIPT_LIMBU, /* Limb */
- USCRIPT_LINEAR_B, /* Linb */
- USCRIPT_OSMANYA, /* Osma */
- USCRIPT_SHAVIAN, /* Shaw */
- USCRIPT_TAI_LE, /* Tale */
- USCRIPT_UGARITIC, /* Ugar */
-
- /** New script code in Unicode 4.0.1 @draft ICU 3.0 */
- USCRIPT_KATAKANA_OR_HIRAGANA,/*Hrkt */
-
- USCRIPT_CODE_LIMIT
+ USCRIPT_BRAILLE = 46, /* Brai */
+ USCRIPT_CYPRIOT = 47, /* Cprt */
+ USCRIPT_LIMBU = 48, /* Limb */
+ USCRIPT_LINEAR_B = 49, /* Linb */
+ USCRIPT_OSMANYA = 50, /* Osma */
+ USCRIPT_SHAVIAN = 51, /* Shaw */
+ USCRIPT_TAI_LE = 52, /* Tale */
+ USCRIPT_UGARITIC = 53, /* Ugar */
+
+ /** New script code in Unicode 4.0.1 @stable ICU 3.0 */
+ USCRIPT_KATAKANA_OR_HIRAGANA = 54,/*Hrkt */
+
+ /* New scripts in Unicode 4.1 @stable ICU 3.4 */
+ USCRIPT_BUGINESE = 55, /* Bugi */
+ USCRIPT_GLAGOLITIC = 56, /* Glag */
+ USCRIPT_KHAROSHTHI = 57, /* Khar */
+ USCRIPT_SYLOTI_NAGRI = 58, /* Sylo */
+ USCRIPT_NEW_TAI_LUE = 59, /* Talu */
+ USCRIPT_TIFINAGH = 60, /* Tfng */
+ USCRIPT_OLD_PERSIAN = 61, /* Xpeo */
+
+ /* New script codes from ISO 15924 @stable ICU 3.6 */
+ USCRIPT_BALINESE = 62, /* Bali */
+ USCRIPT_BATAK = 63, /* Batk */
+ USCRIPT_BLISSYMBOLS = 64, /* Blis */
+ USCRIPT_BRAHMI = 65, /* Brah */
+ USCRIPT_CHAM = 66, /* Cham */
+ USCRIPT_CIRTH = 67, /* Cirt */
+ USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC = 68, /* Cyrs */
+ USCRIPT_DEMOTIC_EGYPTIAN = 69, /* Egyd */
+ USCRIPT_HIERATIC_EGYPTIAN = 70, /* Egyh */
+ USCRIPT_EGYPTIAN_HIEROGLYPHS = 71, /* Egyp */
+ USCRIPT_KHUTSURI = 72, /* Geok */
+ USCRIPT_SIMPLIFIED_HAN = 73, /* Hans */
+ USCRIPT_TRADITIONAL_HAN = 74, /* Hant */
+ USCRIPT_PAHAWH_HMONG = 75, /* Hmng */
+ USCRIPT_OLD_HUNGARIAN = 76, /* Hung */
+ USCRIPT_HARAPPAN_INDUS = 77, /* Inds */
+ USCRIPT_JAVANESE = 78, /* Java */
+ USCRIPT_KAYAH_LI = 79, /* Kali */
+ USCRIPT_LATIN_FRAKTUR = 80, /* Latf */
+ USCRIPT_LATIN_GAELIC = 81, /* Latg */
+ USCRIPT_LEPCHA = 82, /* Lepc */
+ USCRIPT_LINEAR_A = 83, /* Lina */
+ /** @stable ICU 4.6 */
+ USCRIPT_MANDAIC = 84, /* Mand */
+ /** @stable ICU 3.6 */
+ USCRIPT_MANDAEAN = USCRIPT_MANDAIC,
+ USCRIPT_MAYAN_HIEROGLYPHS = 85, /* Maya */
+ /** @stable ICU 4.6 */
+ USCRIPT_MEROITIC_HIEROGLYPHS = 86, /* Mero */
+ /** @stable ICU 3.6 */
+ USCRIPT_MEROITIC = USCRIPT_MEROITIC_HIEROGLYPHS,
+ USCRIPT_NKO = 87, /* Nkoo */
+ USCRIPT_ORKHON = 88, /* Orkh */
+ USCRIPT_OLD_PERMIC = 89, /* Perm */
+ USCRIPT_PHAGS_PA = 90, /* Phag */
+ USCRIPT_PHOENICIAN = 91, /* Phnx */
+ USCRIPT_PHONETIC_POLLARD = 92, /* Plrd */
+ USCRIPT_RONGORONGO = 93, /* Roro */
+ USCRIPT_SARATI = 94, /* Sara */
+ USCRIPT_ESTRANGELO_SYRIAC = 95, /* Syre */
+ USCRIPT_WESTERN_SYRIAC = 96, /* Syrj */
+ USCRIPT_EASTERN_SYRIAC = 97, /* Syrn */
+ USCRIPT_TENGWAR = 98, /* Teng */
+ USCRIPT_VAI = 99, /* Vaii */
+ USCRIPT_VISIBLE_SPEECH = 100,/* Visp */
+ USCRIPT_CUNEIFORM = 101,/* Xsux */
+ USCRIPT_UNWRITTEN_LANGUAGES = 102,/* Zxxx */
+ USCRIPT_UNKNOWN = 103,/* Zzzz */ /* Unknown="Code for uncoded script", for unassigned code points */
+
+ /* New script codes from ISO 15924 @stable ICU 3.8 */
+ USCRIPT_CARIAN = 104,/* Cari */
+ USCRIPT_JAPANESE = 105,/* Jpan */
+ USCRIPT_LANNA = 106,/* Lana */
+ USCRIPT_LYCIAN = 107,/* Lyci */
+ USCRIPT_LYDIAN = 108,/* Lydi */
+ USCRIPT_OL_CHIKI = 109,/* Olck */
+ USCRIPT_REJANG = 110,/* Rjng */
+ USCRIPT_SAURASHTRA = 111,/* Saur */
+ USCRIPT_SIGN_WRITING = 112,/* Sgnw */
+ USCRIPT_SUNDANESE = 113,/* Sund */
+ USCRIPT_MOON = 114,/* Moon */
+ USCRIPT_MEITEI_MAYEK = 115,/* Mtei */
+
+ /* New script codes from ISO 15924 @stable ICU 4.0 */
+ USCRIPT_IMPERIAL_ARAMAIC = 116,/* Armi */
+ USCRIPT_AVESTAN = 117,/* Avst */
+ USCRIPT_CHAKMA = 118,/* Cakm */
+ USCRIPT_KOREAN = 119,/* Kore */
+ USCRIPT_KAITHI = 120,/* Kthi */
+ USCRIPT_MANICHAEAN = 121,/* Mani */
+ USCRIPT_INSCRIPTIONAL_PAHLAVI = 122,/* Phli */
+ USCRIPT_PSALTER_PAHLAVI = 123,/* Phlp */
+ USCRIPT_BOOK_PAHLAVI = 124,/* Phlv */
+ USCRIPT_INSCRIPTIONAL_PARTHIAN = 125,/* Prti */
+ USCRIPT_SAMARITAN = 126,/* Samr */
+ USCRIPT_TAI_VIET = 127,/* Tavt */
+ USCRIPT_MATHEMATICAL_NOTATION = 128,/* Zmth */
+ USCRIPT_SYMBOLS = 129,/* Zsym */
+
+ /* New script codes from ISO 15924 @stable ICU 4.4 */
+ USCRIPT_BAMUM = 130,/* Bamu */
+ USCRIPT_LISU = 131,/* Lisu */
+ USCRIPT_NAKHI_GEBA = 132,/* Nkgb */
+ USCRIPT_OLD_SOUTH_ARABIAN = 133,/* Sarb */
+
+ /* New script codes from ISO 15924 @stable ICU 4.6 */
+ USCRIPT_BASSA_VAH = 134,/* Bass */
+ USCRIPT_DUPLOYAN_SHORTAND = 135,/* Dupl */
+ USCRIPT_ELBASAN = 136,/* Elba */
+ USCRIPT_GRANTHA = 137,/* Gran */
+ USCRIPT_KPELLE = 138,/* Kpel */
+ USCRIPT_LOMA = 139,/* Loma */
+ USCRIPT_MENDE = 140,/* Mend */
+ USCRIPT_MEROITIC_CURSIVE = 141,/* Merc */
+ USCRIPT_OLD_NORTH_ARABIAN = 142,/* Narb */
+ USCRIPT_NABATAEAN = 143,/* Nbat */
+ USCRIPT_PALMYRENE = 144,/* Palm */
+ USCRIPT_SINDHI = 145,/* Sind */
+ USCRIPT_WARANG_CITI = 146,/* Wara */
+
+ /* Private use codes from Qaaa - Qabx are not supported */
+ USCRIPT_CODE_LIMIT = 147
} UScriptCode;
/**
@@ -132,7 +265,7 @@ uscript_getName(UScriptCode scriptCode);
U_STABLE const char* U_EXPORT2
uscript_getShortName(UScriptCode scriptCode);
-/**
+/**
* Gets the script code associated with the given codepoint.
* Returns USCRIPT_MALAYALAM given 0x0D02
* @param codepoint UChar32 codepoint
@@ -143,6 +276,51 @@ uscript_getShortName(UScriptCode scriptCode);
U_STABLE UScriptCode U_EXPORT2
uscript_getScript(UChar32 codepoint, UErrorCode *err);
-#endif
+/**
+ * Is code point c used in script sc?
+ * That is, does code point c have the Script property value sc,
+ * or do code point c's Script_Extensions include script code sc?
+ *
+ * Some characters are commonly used in multiple scripts.
+ * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
+ *
+ * The Script_Extensions property is provisional. It may be modified or removed
+ * in future versions of the Unicode Standard, and thus in ICU.
+ * @param c code point
+ * @param sc script code
+ * @return TRUE if Script(c)==sc or sc is in Script_Extensions(c)
+ * @draft ICU 4.6
+ */
+U_DRAFT UBool U_EXPORT2
+uscript_hasScript(UChar32 c, UScriptCode sc);
+/**
+ * Writes code point c's Script_Extensions as a list of UScriptCode values
+ * to the output scripts array.
+ *
+ * Some characters are commonly used in multiple scripts.
+ * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
+ *
+ * If there are more than capacity script codes to be written, then
+ * U_BUFFER_OVERFLOW_ERROR is set and the number of Script_Extensions is returned.
+ * (Usual ICU buffer handling behavior.)
+ *
+ * The Script_Extensions property is provisional. It may be modified or removed
+ * in future versions of the Unicode Standard, and thus in ICU.
+ * @param c code point
+ * @param scripts output script code array
+ * @param capacity capacity of the scripts array
+ * @param errorCode Standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return number of script codes in c's Script_Extensions,
+ * written to scripts unless U_BUFFER_OVERFLOW_ERROR indicates insufficient capacity
+ * @draft ICU 4.6
+ */
+U_DRAFT int32_t U_EXPORT2
+uscript_getScriptExtensions(UChar32 c,
+ UScriptCode *scripts, int32_t capacity,
+ UErrorCode *pErrorCode);
+#endif
diff --git a/Source/WebKit/mac/icu/unicode/ustring.h b/Source/WebKit/mac/icu/unicode/ustring.h
index 6ebb6fbec..2ee16e99c 100644
--- a/Source/WebKit/mac/icu/unicode/ustring.h
+++ b/Source/WebKit/mac/icu/unicode/ustring.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1998-2004, International Business Machines
+* Copyright (C) 1998-2010, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -23,7 +23,7 @@
/** Simple declaration for u_strToTitle() to avoid including unicode/ubrk.h. @stable ICU 2.1*/
#ifndef UBRK_TYPEDEF_UBREAK_ITERATOR
# define UBRK_TYPEDEF_UBREAK_ITERATOR
- typedef void UBreakIterator;
+ typedef struct UBreakIterator UBreakIterator;
#endif
/**
@@ -65,12 +65,17 @@
* their occurrence is rare. Almost all characters in modern use require only
* a single UChar code unit (i.e., their code point values are <=0xffff).
*
- * For more details see the User Guide Strings chapter (http://oss.software.ibm.com/icu/userguide/strings.html).
+ * For more details see the User Guide Strings chapter (http://icu-project.org/userguide/strings.html).
* For a discussion of the handling of unpaired surrogates see also
* Jitterbug 2145 and its icu mailing list proposal on 2002-sep-18.
*/
/**
+ * \defgroup ustring_ustrlen String Length
+ * \ingroup ustring_strlen
+ */
+/*@{*/
+/**
* Determine the length of an array of UChar.
*
* @param s The array of UChars, NULL (U+0000) terminated.
@@ -79,6 +84,7 @@
*/
U_STABLE int32_t U_EXPORT2
u_strlen(const UChar *s);
+/*@}*/
/**
* Count Unicode code points in the length UChar code units of the string.
@@ -141,7 +147,7 @@ u_strcat(UChar *dst,
*
* @param dst The destination string.
* @param src The source string.
- * @param n The maximum number of characters to compare.
+ * @param n The maximum number of characters to append.
* @return A pointer to <code>dst</code>.
* @stable ICU 2.0
*/
@@ -898,23 +904,41 @@ u_memrchr32(const UChar *s, UChar32 c, int32_t count);
*
* Usage:
* <pre>
- * &#32; U_STRING_DECL(ustringVar1, "Quick-Fox 2", 11);
- * &#32; U_STRING_DECL(ustringVar2, "jumps 5%", 8);
- * &#32; static UBool didInit=FALSE;
- * &#32;
- * &#32; int32_t function() {
- * &#32; if(!didInit) {
- * &#32; U_STRING_INIT(ustringVar1, "Quick-Fox 2", 11);
- * &#32; U_STRING_INIT(ustringVar2, "jumps 5%", 8);
- * &#32; didInit=TRUE;
- * &#32; }
- * &#32; return u_strcmp(ustringVar1, ustringVar2);
- * &#32; }
+ * U_STRING_DECL(ustringVar1, "Quick-Fox 2", 11);
+ * U_STRING_DECL(ustringVar2, "jumps 5%", 8);
+ * static UBool didInit=FALSE;
+ *
+ * int32_t function() {
+ * if(!didInit) {
+ * U_STRING_INIT(ustringVar1, "Quick-Fox 2", 11);
+ * U_STRING_INIT(ustringVar2, "jumps 5%", 8);
+ * didInit=TRUE;
+ * }
+ * return u_strcmp(ustringVar1, ustringVar2);
+ * }
+ * </pre>
+ *
+ * Note that the macros will NOT consistently work if their argument is another #define.
+ * The following will not work on all platforms, don't use it.
+ *
+ * <pre>
+ * #define GLUCK "Mr. Gluck"
+ * U_STRING_DECL(var, GLUCK, 9)
+ * U_STRING_INIT(var, GLUCK, 9)
* </pre>
+ *
+ * Instead, use the string literal "Mr. Gluck" as the argument to both macro
+ * calls.
+ *
+ *
* @stable ICU 2.0
*/
-#if U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && U_CHARSET_FAMILY==U_ASCII_FAMILY
-# define U_STRING_DECL(var, cs, length) static const wchar_t var[(length)+1]={ L ## cs }
+#if defined(U_DECLARE_UTF16)
+# define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1]=U_DECLARE_UTF16(cs)
+ /**@stable ICU 2.0 */
+# define U_STRING_INIT(var, cs, length)
+#elif U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || (U_SIZEOF_UCHAR == 2 && defined(U_WCHAR_IS_UTF16)))
+# define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1]=L ## cs
/**@stable ICU 2.0 */
# define U_STRING_INIT(var, cs, length)
#elif U_SIZEOF_UCHAR==1 && U_CHARSET_FAMILY==U_ASCII_FAMILY
@@ -943,7 +967,7 @@ u_memrchr32(const UChar *s, UChar32 c, int32_t count);
*
* \\a => U+0007, \\b => U+0008, \\t => U+0009, \\n => U+000A,
* \\v => U+000B, \\f => U+000C, \\r => U+000D, \\e => U+001B,
- * \\" => U+0022, \\' => U+0027, \\? => U+003F, \\\\ => U+005C
+ * \\&quot; => U+0022, \\' => U+0027, \\? => U+003F, \\\\ => U+005C
*
* Anything else following a backslash is generically escaped. For
* example, "[a\\-z]" returns "[a-z]".
@@ -1096,7 +1120,7 @@ u_strToLower(UChar *dest, int32_t destCapacity,
* The standard titlecase iterator for the root locale implements the
* algorithm of Unicode TR 21.
*
- * This function uses only the first() and next() methods of the
+ * This function uses only the setText(), first() and next() methods of the
* provided break iterator.
*
* The result may be longer or shorter than the original.
@@ -1157,8 +1181,12 @@ u_strFoldCase(UChar *dest, int32_t destCapacity,
uint32_t options,
UErrorCode *pErrorCode);
+#if defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION
/**
- * Converts a sequence of UChars to wchar_t units.
+ * Convert a UTF-16 string to a wchar_t string.
+ * If it is known at compile time that wchar_t strings are in UTF-16 or UTF-32, then
+ * this function simply calls the fast, dedicated function for that.
+ * Otherwise, two conversions UTF-16 -> default charset -> wchar_t* are performed.
*
* @param dest A buffer for the result string. The result will be zero-terminated if
* the buffer is large enough.
@@ -1184,7 +1212,10 @@ u_strToWCS(wchar_t *dest,
int32_t srcLength,
UErrorCode *pErrorCode);
/**
- * Converts a sequence of wchar_t units to UChars
+ * Convert a wchar_t string to UTF-16.
+ * If it is known at compile time that wchar_t strings are in UTF-16 or UTF-32, then
+ * this function simply calls the fast, dedicated function for that.
+ * Otherwise, two conversions wchar_t* -> default charset -> UTF-16 are performed.
*
* @param dest A buffer for the result string. The result will be zero-terminated if
* the buffer is large enough.
@@ -1209,8 +1240,11 @@ u_strFromWCS(UChar *dest,
const wchar_t *src,
int32_t srcLength,
UErrorCode *pErrorCode);
+#endif /* defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION */
+
/**
- * Converts a sequence of UChars (UTF-16) to UTF-8 bytes
+ * Convert a UTF-16 string to UTF-8.
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
*
* @param dest A buffer for the result string. The result will be zero-terminated if
* the buffer is large enough.
@@ -1227,6 +1261,8 @@ u_strFromWCS(UChar *dest,
* which must not indicate a failure before the function call.
* @return The pointer to destination buffer.
* @stable ICU 2.0
+ * @see u_strToUTF8WithSub
+ * @see u_strFromUTF8
*/
U_STABLE char* U_EXPORT2
u_strToUTF8(char *dest,
@@ -1237,7 +1273,8 @@ u_strToUTF8(char *dest,
UErrorCode *pErrorCode);
/**
- * Converts a sequence of UTF-8 bytes to UChars (UTF-16).
+ * Convert a UTF-8 string to UTF-16.
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
*
* @param dest A buffer for the result string. The result will be zero-terminated if
* the buffer is large enough.
@@ -1254,6 +1291,8 @@ u_strToUTF8(char *dest,
* which must not indicate a failure before the function call.
* @return The pointer to destination buffer.
* @stable ICU 2.0
+ * @see u_strFromUTF8WithSub
+ * @see u_strFromUTF8Lenient
*/
U_STABLE UChar* U_EXPORT2
u_strFromUTF8(UChar *dest,
@@ -1264,7 +1303,158 @@ u_strFromUTF8(UChar *dest,
UErrorCode *pErrorCode);
/**
- * Converts a sequence of UChars (UTF-16) to UTF32 units.
+ * Convert a UTF-16 string to UTF-8.
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
+ *
+ * Same as u_strToUTF8() except for the additional subchar which is output for
+ * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code.
+ * With subchar==U_SENTINEL, this function behaves exactly like u_strToUTF8().
+ *
+ * @param dest A buffer for the result string. The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param destCapacity The size of the buffer (number of chars). If it is 0, then
+ * dest may be NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
+ * pDestLength!=NULL then *pDestLength is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param src The original source string
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
+ * @param subchar The substitution character to use in place of an illegal input sequence,
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
+ * except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
+ * Set to 0 if no substitutions occur or subchar<0.
+ * pNumSubstitutions can be NULL.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return The pointer to destination buffer.
+ * @see u_strToUTF8
+ * @see u_strFromUTF8WithSub
+ * @stable ICU 3.6
+ */
+U_STABLE char* U_EXPORT2
+u_strToUTF8WithSub(char *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const UChar *src,
+ int32_t srcLength,
+ UChar32 subchar, int32_t *pNumSubstitutions,
+ UErrorCode *pErrorCode);
+
+/**
+ * Convert a UTF-8 string to UTF-16.
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
+ *
+ * Same as u_strFromUTF8() except for the additional subchar which is output for
+ * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code.
+ * With subchar==U_SENTINEL, this function behaves exactly like u_strFromUTF8().
+ *
+ * @param dest A buffer for the result string. The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
+ * dest may be NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
+ * pDestLength!=NULL then *pDestLength is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param src The original source string
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
+ * @param subchar The substitution character to use in place of an illegal input sequence,
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
+ * except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
+ * Set to 0 if no substitutions occur or subchar<0.
+ * pNumSubstitutions can be NULL.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return The pointer to destination buffer.
+ * @see u_strFromUTF8
+ * @see u_strFromUTF8Lenient
+ * @see u_strToUTF8WithSub
+ * @stable ICU 3.6
+ */
+U_STABLE UChar* U_EXPORT2
+u_strFromUTF8WithSub(UChar *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const char *src,
+ int32_t srcLength,
+ UChar32 subchar, int32_t *pNumSubstitutions,
+ UErrorCode *pErrorCode);
+
+/**
+ * Convert a UTF-8 string to UTF-16.
+ *
+ * Same as u_strFromUTF8() except that this function is designed to be very fast,
+ * which it achieves by being lenient about malformed UTF-8 sequences.
+ * This function is intended for use in environments where UTF-8 text is
+ * expected to be well-formed.
+ *
+ * Its semantics are:
+ * - Well-formed UTF-8 text is correctly converted to well-formed UTF-16 text.
+ * - The function will not read beyond the input string, nor write beyond
+ * the destCapacity.
+ * - Malformed UTF-8 results in "garbage" 16-bit Unicode strings which may not
+ * be well-formed UTF-16.
+ * The function will resynchronize to valid code point boundaries
+ * within a small number of code points after an illegal sequence.
+ * - Non-shortest forms are not detected and will result in "spoofing" output.
+ *
+ * For further performance improvement, if srcLength is given (>=0),
+ * then it must be destCapacity>=srcLength.
+ *
+ * There is no inverse u_strToUTF8Lenient() function because there is practically
+ * no performance gain from not checking that a UTF-16 string is well-formed.
+ *
+ * @param dest A buffer for the result string. The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
+ * dest may be NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * Unlike for other ICU functions, if srcLength>=0 then it
+ * must be destCapacity>=srcLength.
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
+ * pDestLength!=NULL then *pDestLength is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * Unlike for other ICU functions, if srcLength>=0 but
+ * destCapacity<srcLength, then *pDestLength will be set to srcLength
+ * (and U_BUFFER_OVERFLOW_ERROR will be set)
+ * regardless of the actual result length.
+ * @param src The original source string
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return The pointer to destination buffer.
+ * @see u_strFromUTF8
+ * @see u_strFromUTF8WithSub
+ * @see u_strToUTF8WithSub
+ * @stable ICU 3.6
+ */
+U_STABLE UChar * U_EXPORT2
+u_strFromUTF8Lenient(UChar *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const char *src,
+ int32_t srcLength,
+ UErrorCode *pErrorCode);
+
+/**
+ * Convert a UTF-16 string to UTF-32.
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
*
* @param dest A buffer for the result string. The result will be zero-terminated if
* the buffer is large enough.
@@ -1280,6 +1470,8 @@ u_strFromUTF8(UChar *dest,
* @param pErrorCode Must be a valid pointer to an error code value,
* which must not indicate a failure before the function call.
* @return The pointer to destination buffer.
+ * @see u_strToUTF32WithSub
+ * @see u_strFromUTF32
* @stable ICU 2.0
*/
U_STABLE UChar32* U_EXPORT2
@@ -1291,7 +1483,8 @@ u_strToUTF32(UChar32 *dest,
UErrorCode *pErrorCode);
/**
- * Converts a sequence of UTF32 units to UChars (UTF-16)
+ * Convert a UTF-32 string to UTF-16.
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
*
* @param dest A buffer for the result string. The result will be zero-terminated if
* the buffer is large enough.
@@ -1307,6 +1500,8 @@ u_strToUTF32(UChar32 *dest,
* @param pErrorCode Must be a valid pointer to an error code value,
* which must not indicate a failure before the function call.
* @return The pointer to destination buffer.
+ * @see u_strFromUTF32WithSub
+ * @see u_strToUTF32
* @stable ICU 2.0
*/
U_STABLE UChar* U_EXPORT2
@@ -1317,4 +1512,185 @@ u_strFromUTF32(UChar *dest,
int32_t srcLength,
UErrorCode *pErrorCode);
+/**
+ * Convert a UTF-16 string to UTF-32.
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
+ *
+ * Same as u_strToUTF32() except for the additional subchar which is output for
+ * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code.
+ * With subchar==U_SENTINEL, this function behaves exactly like u_strToUTF32().
+ *
+ * @param dest A buffer for the result string. The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param destCapacity The size of the buffer (number of UChar32s). If it is 0, then
+ * dest may be NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
+ * pDestLength!=NULL then *pDestLength is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param src The original source string
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
+ * @param subchar The substitution character to use in place of an illegal input sequence,
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
+ * except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
+ * Set to 0 if no substitutions occur or subchar<0.
+ * pNumSubstitutions can be NULL.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return The pointer to destination buffer.
+ * @see u_strToUTF32
+ * @see u_strFromUTF32WithSub
+ * @stable ICU 4.2
+ */
+U_STABLE UChar32* U_EXPORT2
+u_strToUTF32WithSub(UChar32 *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const UChar *src,
+ int32_t srcLength,
+ UChar32 subchar, int32_t *pNumSubstitutions,
+ UErrorCode *pErrorCode);
+
+/**
+ * Convert a UTF-32 string to UTF-16.
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
+ *
+ * Same as u_strFromUTF32() except for the additional subchar which is output for
+ * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code.
+ * With subchar==U_SENTINEL, this function behaves exactly like u_strFromUTF32().
+ *
+ * @param dest A buffer for the result string. The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
+ * dest may be NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
+ * pDestLength!=NULL then *pDestLength is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param src The original source string
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
+ * @param subchar The substitution character to use in place of an illegal input sequence,
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
+ * except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
+ * Set to 0 if no substitutions occur or subchar<0.
+ * pNumSubstitutions can be NULL.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return The pointer to destination buffer.
+ * @see u_strFromUTF32
+ * @see u_strToUTF32WithSub
+ * @stable ICU 4.2
+ */
+U_STABLE UChar* U_EXPORT2
+u_strFromUTF32WithSub(UChar *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const UChar32 *src,
+ int32_t srcLength,
+ UChar32 subchar, int32_t *pNumSubstitutions,
+ UErrorCode *pErrorCode);
+
+/**
+ * Convert a 16-bit Unicode string to Java Modified UTF-8.
+ * See http://java.sun.com/javase/6/docs/api/java/io/DataInput.html#modified-utf-8
+ *
+ * This function behaves according to the documentation for Java DataOutput.writeUTF()
+ * except that it does not encode the output length in the destination buffer
+ * and does not have an output length restriction.
+ * See http://java.sun.com/javase/6/docs/api/java/io/DataOutput.html#writeUTF(java.lang.String)
+ *
+ * The input string need not be well-formed UTF-16.
+ * (Therefore there is no subchar parameter.)
+ *
+ * @param dest A buffer for the result string. The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param destCapacity The size of the buffer (number of chars). If it is 0, then
+ * dest may be NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
+ * pDestLength!=NULL then *pDestLength is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param src The original source string
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return The pointer to destination buffer.
+ * @stable ICU 4.4
+ * @see u_strToUTF8WithSub
+ * @see u_strFromJavaModifiedUTF8WithSub
+ */
+U_STABLE char* U_EXPORT2
+u_strToJavaModifiedUTF8(
+ char *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const UChar *src,
+ int32_t srcLength,
+ UErrorCode *pErrorCode);
+
+/**
+ * Convert a Java Modified UTF-8 string to a 16-bit Unicode string.
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
+ *
+ * This function behaves according to the documentation for Java DataInput.readUTF()
+ * except that it takes a length parameter rather than
+ * interpreting the first two input bytes as the length.
+ * See http://java.sun.com/javase/6/docs/api/java/io/DataInput.html#readUTF()
+ *
+ * The output string may not be well-formed UTF-16.
+ *
+ * @param dest A buffer for the result string. The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
+ * dest may be NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
+ * pDestLength!=NULL then *pDestLength is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param src The original source string
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
+ * @param subchar The substitution character to use in place of an illegal input sequence,
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
+ * except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
+ * Set to 0 if no substitutions occur or subchar<0.
+ * pNumSubstitutions can be NULL.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * pass the U_SUCCESS() test, or else the function returns
+ * immediately. Check for U_FAILURE() on output or use with
+ * function chaining. (See User Guide for details.)
+ * @return The pointer to destination buffer.
+ * @see u_strFromUTF8WithSub
+ * @see u_strFromUTF8Lenient
+ * @see u_strToJavaModifiedUTF8
+ * @stable ICU 4.4
+ */
+U_STABLE UChar* U_EXPORT2
+u_strFromJavaModifiedUTF8WithSub(
+ UChar *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const char *src,
+ int32_t srcLength,
+ UChar32 subchar, int32_t *pNumSubstitutions,
+ UErrorCode *pErrorCode);
+
#endif
diff --git a/Source/WebKit/mac/icu/unicode/utf.h b/Source/WebKit/mac/icu/unicode/utf.h
index 201691d09..f79479935 100644
--- a/Source/WebKit/mac/icu/unicode/utf.h
+++ b/Source/WebKit/mac/icu/unicode/utf.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2010, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -63,6 +63,14 @@
* malformed sequences can be expressed unambiguously with a distinct subrange
* of Unicode code points.)
*
+ * The regular "safe" macros require that the initial, passed-in string index
+ * is within bounds. They only check the index when they read more than one
+ * code unit. This is usually done with code similar to the following loop:
+ * <pre>while(i<length) {
+ * U16_NEXT(s, i, length, c);
+ * // use c
+ * }</pre>
+ *
* When it is safe to assume that text is well-formed UTF-16
* (does not contain single, unpaired surrogates), then one can use
* U16_..._UNSAFE macros.
@@ -80,12 +88,14 @@
* The unsafe UTF-8 macros are entirely implemented inside the macro definitions
* and are fast, while the safe UTF-8 macros call functions for all but the
* trivial (ASCII) cases.
+ * (ICU 3.6 optimizes U8_NEXT() and U8_APPEND() to handle most other common
+ * characters inline as well.)
*
* Unlike with UTF-16, malformed sequences cannot be expressed with distinct
* code point values (0..U+10ffff). They are indicated with negative values instead.
*
* For more information see the ICU User Guide Strings chapter
- * (http://oss.software.ibm.com/icu/userguide/).
+ * (http://icu-project.org/userguide/strings.html).
*
* <em>Usage:</em>
* ICU coding guidelines for if() statements should be followed when using these macros.
@@ -157,13 +167,11 @@
(uint32_t)(c)<=0x10ffff && \
!U_IS_UNICODE_NONCHAR(c)))
-#ifndef U_HIDE_DRAFT_API
-
/**
* Is this code point a BMP code point (U+0000..U+ffff)?
* @param c 32-bit code point
* @return TRUE or FALSE
- * @draft ICU 2.8
+ * @stable ICU 2.8
*/
#define U_IS_BMP(c) ((uint32_t)(c)<=0xffff)
@@ -171,11 +179,9 @@
* Is this code point a supplementary code point (U+10000..U+10ffff)?
* @param c 32-bit code point
* @return TRUE or FALSE
- * @draft ICU 2.8
+ * @stable ICU 2.8
*/
#define U_IS_SUPPLEMENTARY(c) ((uint32_t)((c)-0x10000)<=0xfffff)
-
-#endif /*U_HIDE_DRAFT_API*/
/**
* Is this code point a lead surrogate (U+d800..U+dbff)?
@@ -210,6 +216,15 @@
*/
#define U_IS_SURROGATE_LEAD(c) (((c)&0x400)==0)
+/**
+ * Assuming c is a surrogate code point (U_IS_SURROGATE(c)),
+ * is it a trail surrogate?
+ * @param c 32-bit code point
+ * @return TRUE or FALSE
+ * @stable ICU 4.2
+ */
+#define U_IS_SURROGATE_TRAIL(c) (((c)&0x400)!=0)
+
/* include the utfXX.h ------------------------------------------------------ */
#include "unicode/utf8.h"
diff --git a/Source/WebKit/mac/icu/unicode/utf16.h b/Source/WebKit/mac/icu/unicode/utf16.h
index 7bf387207..5079c1146 100644
--- a/Source/WebKit/mac/icu/unicode/utf16.h
+++ b/Source/WebKit/mac/icu/unicode/utf16.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2010, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -23,7 +23,7 @@
* and some common definitions.
*
* For more information see utf.h and the ICU User Guide Strings chapter
- * (http://oss.software.ibm.com/icu/userguide/).
+ * (http://icu-project.org/userguide/strings.html).
*
* <em>Usage:</em>
* ICU coding guidelines for if() statements should be followed when using these macros.
@@ -83,6 +83,15 @@
#define U16_IS_SURROGATE_LEAD(c) (((c)&0x400)==0)
/**
+ * Assuming c is a surrogate code point (U16_IS_SURROGATE(c)),
+ * is it a trail surrogate?
+ * @param c 16-bit code unit
+ * @return TRUE or FALSE
+ * @stable ICU 4.2
+ */
+#define U16_IS_SURROGATE_TRAIL(c) (((c)&0x400)!=0)
+
+/**
* Helper constant for U16_GET_SUPPLEMENTARY.
* @internal
*/
@@ -179,7 +188,7 @@
*
* @param s const UChar * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i<length
+ * @param i string offset, must be start<=i<length
* @param length string length
* @param c output UChar32 variable
* @see U16_GET_UNSAFE
@@ -194,7 +203,7 @@
(c)=U16_GET_SUPPLEMENTARY((c), __c2); \
} \
} else { \
- if((i)-1>=(start) && U16_IS_LEAD(__c2=(s)[(i)-1])) { \
+ if((i)>(start) && U16_IS_LEAD(__c2=(s)[(i)-1])) { \
(c)=U16_GET_SUPPLEMENTARY(__c2, (c)); \
} \
} \
@@ -243,7 +252,7 @@
* will be returned as the code point.
*
* @param s const UChar * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @param c output UChar32 variable
* @see U16_NEXT_UNSAFE
@@ -292,7 +301,7 @@
* then isError is set to TRUE.
*
* @param s const UChar * string buffer
- * @param i string offset, i<length
+ * @param i string offset, must be i<capacity
* @param capacity size of the string buffer
* @param c code point to append
* @param isError output UBool set to TRUE if an error occurs, otherwise not modified
@@ -332,7 +341,7 @@
* "Safe" macro, handles unpaired surrogates and checks for string boundaries.
*
* @param s const UChar * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @see U16_FWD_1_UNSAFE
* @stable ICU 2.4
@@ -370,7 +379,7 @@
* "Safe" macro, handles unpaired surrogates and checks for string boundaries.
*
* @param s const UChar * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @param n number of code points to skip
* @see U16_FWD_N_UNSAFE
@@ -413,7 +422,7 @@
*
* @param s const UChar * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<=i
* @see U16_SET_CP_START_UNSAFE
* @stable ICU 2.4
*/
@@ -468,7 +477,7 @@
*
* @param s const UChar * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<i
* @param c output UChar32 variable
* @see U16_PREV_UNSAFE
* @stable ICU 2.4
@@ -509,7 +518,7 @@
*
* @param s const UChar * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<i
* @see U16_BACK_1_UNSAFE
* @stable ICU 2.4
*/
@@ -549,7 +558,7 @@
*
* @param s const UChar * string
* @param start start of string
- * @param i string offset, i<length
+ * @param i string offset, must be start<i
* @param n number of code points to skip
* @see U16_BACK_N_UNSAFE
* @stable ICU 2.4
diff --git a/Source/WebKit/mac/icu/unicode/utf8.h b/Source/WebKit/mac/icu/unicode/utf8.h
index f83662bad..6405795a5 100644
--- a/Source/WebKit/mac/icu/unicode/utf8.h
+++ b/Source/WebKit/mac/icu/unicode/utf8.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2009, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -23,7 +23,7 @@
* and some common definitions.
*
* For more information see utf.h and the ICU User Guide Strings chapter
- * (http://oss.software.ibm.com/icu/userguide/).
+ * (http://icu-project.org/userguide/strings.html).
*
* <em>Usage:</em>
* ICU coding guidelines for if() statements should be followed when using these macros.
@@ -45,11 +45,16 @@
* \var utf8_countTrailBytes
* Internal array with numbers of trail bytes for any given byte used in
* lead byte position.
+ *
+ * This is internal since it is not meant to be called directly by external clients;
+ * however it is called by public macros in this file and thus must remain stable,
+ * and should not be hidden when other internal functions are hidden (otherwise
+ * public macros would fail to compile).
* @internal
*/
#ifdef U_UTF8_IMPL
-U_INTERNAL const uint8_t
-#elif defined(U_STATIC_IMPLEMENTATION)
+U_EXPORT const uint8_t
+#elif defined(U_STATIC_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION)
U_CFUNC const uint8_t
#else
U_CFUNC U_IMPORT const uint8_t /* U_IMPORT2? */ /*U_IMPORT*/
@@ -58,42 +63,68 @@ utf8_countTrailBytes[256];
/**
* Count the trail bytes for a UTF-8 lead byte.
+ *
+ * This is internal since it is not meant to be called directly by external clients;
+ * however it is called by public macros in this file and thus must remain stable.
* @internal
*/
#define U8_COUNT_TRAIL_BYTES(leadByte) (utf8_countTrailBytes[(uint8_t)leadByte])
/**
* Mask a UTF-8 lead byte, leave only the lower bits that form part of the code point value.
+ *
+ * This is internal since it is not meant to be called directly by external clients;
+ * however it is called by public macros in this file and thus must remain stable.
* @internal
*/
#define U8_MASK_LEAD_BYTE(leadByte, countTrailBytes) ((leadByte)&=(1<<(6-(countTrailBytes)))-1)
/**
* Function for handling "next code point" with error-checking.
+ *
+ * This is internal since it is not meant to be called directly by external clients;
+ * however it is U_STABLE (not U_INTERNAL) since it is called by public macros in this
+ * file and thus must remain stable, and should not be hidden when other internal
+ * functions are hidden (otherwise public macros would fail to compile).
* @internal
*/
-U_INTERNAL UChar32 U_EXPORT2
+U_STABLE UChar32 U_EXPORT2
utf8_nextCharSafeBody(const uint8_t *s, int32_t *pi, int32_t length, UChar32 c, UBool strict);
/**
* Function for handling "append code point" with error-checking.
+ *
+ * This is internal since it is not meant to be called directly by external clients;
+ * however it is U_STABLE (not U_INTERNAL) since it is called by public macros in this
+ * file and thus must remain stable, and should not be hidden when other internal
+ * functions are hidden (otherwise public macros would fail to compile).
* @internal
*/
-U_INTERNAL int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
utf8_appendCharSafeBody(uint8_t *s, int32_t i, int32_t length, UChar32 c, UBool *pIsError);
/**
* Function for handling "previous code point" with error-checking.
+ *
+ * This is internal since it is not meant to be called directly by external clients;
+ * however it is U_STABLE (not U_INTERNAL) since it is called by public macros in this
+ * file and thus must remain stable, and should not be hidden when other internal
+ * functions are hidden (otherwise public macros would fail to compile).
* @internal
*/
-U_INTERNAL UChar32 U_EXPORT2
+U_STABLE UChar32 U_EXPORT2
utf8_prevCharSafeBody(const uint8_t *s, int32_t start, int32_t *pi, UChar32 c, UBool strict);
/**
* Function for handling "skip backward one code point" with error-checking.
+ *
+ * This is internal since it is not meant to be called directly by external clients;
+ * however it is U_STABLE (not U_INTERNAL) since it is called by public macros in this
+ * file and thus must remain stable, and should not be hidden when other internal
+ * functions are hidden (otherwise public macros would fail to compile).
* @internal
*/
-U_INTERNAL int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
/* single-code point definitions -------------------------------------------- */
@@ -181,7 +212,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start starting string offset
- * @param i string offset, start<=i<length
+ * @param i string offset, must be start<=i<length
* @param length string length
* @param c output UChar32 variable, set to <0 in case of an error
* @see U8_GET_UNSAFE
@@ -213,7 +244,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* @stable ICU 2.4
*/
#define U8_NEXT_UNSAFE(s, i, c) { \
- (c)=(s)[(i)++]; \
+ (c)=(uint8_t)(s)[(i)++]; \
if((uint8_t)((c)-0xc0)<0x35) { \
uint8_t __count=U8_COUNT_TRAIL_BYTES(c); \
U8_MASK_LEAD_BYTE(c, __count); \
@@ -243,16 +274,34 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* c is set to a negative value.
*
* @param s const uint8_t * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @param c output UChar32 variable, set to <0 in case of an error
* @see U8_NEXT_UNSAFE
* @stable ICU 2.4
*/
#define U8_NEXT(s, i, length, c) { \
- (c)=(s)[(i)++]; \
- if(((uint8_t)(c))>=0x80) { \
- if(U8_IS_LEAD(c)) { \
+ (c)=(uint8_t)(s)[(i)++]; \
+ if((c)>=0x80) { \
+ uint8_t __t1, __t2; \
+ if( /* handle U+1000..U+CFFF inline */ \
+ (0xe0<(c) && (c)<=0xec) && \
+ (((i)+1)<(length)) && \
+ (__t1=(uint8_t)((s)[i]-0x80))<=0x3f && \
+ (__t2=(uint8_t)((s)[(i)+1]-0x80))<= 0x3f \
+ ) { \
+ /* no need for (c&0xf) because the upper bits are truncated after <<12 in the cast to (UChar) */ \
+ (c)=(UChar)(((c)<<12)|(__t1<<6)|__t2); \
+ (i)+=2; \
+ } else if( /* handle U+0080..U+07FF inline */ \
+ ((c)<0xe0 && (c)>=0xc2) && \
+ ((i)<(length)) && \
+ (__t1=(uint8_t)((s)[i]-0x80))<=0x3f \
+ ) { \
+ (c)=(UChar)((((c)&0x1f)<<6)|__t1); \
+ ++(i); \
+ } else if(U8_IS_LEAD(c)) { \
+ /* function call for "complicated" and error cases */ \
(c)=utf8_nextCharSafeBody((const uint8_t *)s, &(i), (int32_t)(length), c, -1); \
} else { \
(c)=U_SENTINEL; \
@@ -293,7 +342,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
}
/**
- * Append a code point to a string, overwriting 1 or 2 code units.
+ * Append a code point to a string, overwriting 1 to 4 bytes.
* The offset points to the current end of the string contents
* and is advanced (post-increment).
* "Safe" macro, checks for a valid code point.
@@ -302,18 +351,25 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* then isError is set to TRUE.
*
* @param s const uint8_t * string buffer
- * @param i string offset, i<length
- * @param length size of the string buffer
+ * @param i string offset, must be i<capacity
+ * @param capacity size of the string buffer
* @param c code point to append
* @param isError output UBool set to TRUE if an error occurs, otherwise not modified
* @see U8_APPEND_UNSAFE
* @stable ICU 2.4
*/
-#define U8_APPEND(s, i, length, c, isError) { \
+#define U8_APPEND(s, i, capacity, c, isError) { \
if((uint32_t)(c)<=0x7f) { \
(s)[(i)++]=(uint8_t)(c); \
+ } else if((uint32_t)(c)<=0x7ff && (i)+1<(capacity)) { \
+ (s)[(i)++]=(uint8_t)(((c)>>6)|0xc0); \
+ (s)[(i)++]=(uint8_t)(((c)&0x3f)|0x80); \
+ } else if((uint32_t)(c)<=0xd7ff && (i)+2<(capacity)) { \
+ (s)[(i)++]=(uint8_t)(((c)>>12)|0xe0); \
+ (s)[(i)++]=(uint8_t)((((c)>>6)&0x3f)|0x80); \
+ (s)[(i)++]=(uint8_t)(((c)&0x3f)|0x80); \
} else { \
- (i)=utf8_appendCharSafeBody(s, (int32_t)(i), (int32_t)(length), c, &(isError)); \
+ (i)=utf8_appendCharSafeBody(s, (int32_t)(i), (int32_t)(capacity), c, &(isError)); \
} \
}
@@ -337,13 +393,13 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* "Safe" macro, checks for illegal sequences and for string boundaries.
*
* @param s const uint8_t * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @see U8_FWD_1_UNSAFE
* @stable ICU 2.4
*/
#define U8_FWD_1(s, i, length) { \
- uint8_t __b=(s)[(i)++]; \
+ uint8_t __b=(uint8_t)(s)[(i)++]; \
if(U8_IS_LEAD(__b)) { \
uint8_t __count=U8_COUNT_TRAIL_BYTES(__b); \
if((i)+__count>(length)) { \
@@ -383,7 +439,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* "Safe" macro, checks for illegal sequences and for string boundaries.
*
* @param s const uint8_t * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @param n number of code points to skip
* @see U8_FWD_N_UNSAFE
@@ -424,7 +480,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<=i
* @see U8_SET_CP_START_UNSAFE
* @stable ICU 2.4
*/
@@ -456,14 +512,14 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* @stable ICU 2.4
*/
#define U8_PREV_UNSAFE(s, i, c) { \
- (c)=(s)[--(i)]; \
+ (c)=(uint8_t)(s)[--(i)]; \
if(U8_IS_TRAIL(c)) { \
uint8_t __b, __count=1, __shift=6; \
\
/* c is a trail byte */ \
(c)&=0x3f; \
for(;;) { \
- __b=(s)[--(i)]; \
+ __b=(uint8_t)(s)[--(i)]; \
if(__b>=0xc0) { \
U8_MASK_LEAD_BYTE(__b, __count); \
(c)|=(UChar32)__b<<__shift; \
@@ -492,16 +548,16 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<i
* @param c output UChar32 variable, set to <0 in case of an error
* @see U8_PREV_UNSAFE
* @stable ICU 2.4
*/
#define U8_PREV(s, start, i, c) { \
- (c)=(s)[--(i)]; \
+ (c)=(uint8_t)(s)[--(i)]; \
if((c)>=0x80) { \
if((c)<=0xbf) { \
- (c)=utf8_prevCharSafeBody(s, start, &(i), c, -1); \
+ (c)=utf8_prevCharSafeBody((const uint8_t *)s, start, &(i), c, -1); \
} else { \
(c)=U_SENTINEL; \
} \
@@ -531,7 +587,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<i
* @see U8_BACK_1_UNSAFE
* @stable ICU 2.4
*/
@@ -571,7 +627,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start index of the start of the string
- * @param i string offset, i<length
+ * @param i string offset, must be start<i
* @param n number of code points to skip
* @see U8_BACK_N_UNSAFE
* @stable ICU 2.4
@@ -612,7 +668,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i<=length
+ * @param i string offset, must be start<=i<=length
* @param length string length
* @see U8_SET_CP_LIMIT_UNSAFE
* @stable ICU 2.4
diff --git a/Source/WebKit/mac/icu/unicode/utypes.h b/Source/WebKit/mac/icu/unicode/utypes.h
index e20cd7933..00bf14ce8 100644
--- a/Source/WebKit/mac/icu/unicode/utypes.h
+++ b/Source/WebKit/mac/icu/unicode/utypes.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1996-2004, International Business Machines
+* Copyright (C) 1996-2010, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -38,6 +38,43 @@
#include "unicode/uversion.h"
#include "unicode/uconfig.h"
+/*!
+ * \file
+ * \brief Basic definitions for ICU, for both C and C++ APIs
+ *
+ * This file defines basic types, constants, and enumerations directly or
+ * indirectly by including other header files, especially utf.h for the
+ * basic character and string definitions and umachine.h for consistent
+ * integer and other types.
+ */
+
+
+/**
+ * \def U_SHOW_CPLUSPLUS_API
+ * @internal
+ */
+#ifdef XP_CPLUSPLUS
+# ifndef U_SHOW_CPLUSPLUS_API
+# define U_SHOW_CPLUSPLUS_API 1
+# endif
+#else
+# undef U_SHOW_CPLUSPLUS_API
+# define U_SHOW_CPLUSPLUS_API 0
+#endif
+
+/** @{ API visibility control */
+
+/**
+ * \def U_HIDE_DRAFT_API
+ * Define this to 1 to request that draft API be "hidden"
+ */
+#if !U_DEFAULT_SHOW_DRAFT && !defined(U_SHOW_DRAFT_API)
+#define U_HIDE_DRAFT_API 1
+#endif
+#if !U_DEFAULT_SHOW_DRAFT && !defined(U_SHOW_INTERNAL_API)
+#define U_HIDE_INTERNAL_API 1
+#endif
+
#ifdef U_HIDE_DRAFT_API
#include "unicode/udraft.h"
#endif
@@ -50,16 +87,16 @@
#include "unicode/uobslete.h"
#endif
+#ifdef U_HIDE_INTERNAL_API
+#include "unicode/uintrnal.h"
+#endif
+
+#ifdef U_HIDE_SYSTEM_API
+#include "unicode/usystem.h"
+#endif
+
+/** @} */
-/*!
- * \file
- * \brief Basic definitions for ICU, for both C and C++ APIs
- *
- * This file defines basic types, constants, and enumerations directly or
- * indirectly by including other header files, especially utf.h for the
- * basic character and string definitions and umachine.h for consistent
- * integer and other types.
- */
/*===========================================================================*/
/* char Character set family */
@@ -124,6 +161,30 @@
# define U_CHARSET_FAMILY 0
#endif
+/**
+ * \def U_CHARSET_IS_UTF8
+ *
+ * Hardcode the default charset to UTF-8.
+ *
+ * If this is set to 1, then
+ * - ICU will assume that all non-invariant char*, StringPiece, std::string etc.
+ * contain UTF-8 text, regardless of what the system API uses
+ * - some ICU code will use fast functions like u_strFromUTF8()
+ * rather than the more general and more heavy-weight conversion API (ucnv.h)
+ * - ucnv_getDefaultName() always returns "UTF-8"
+ * - ucnv_setDefaultName() is disabled and will not change the default charset
+ * - static builds of ICU are smaller
+ * - more functionality is available with the UCONFIG_NO_CONVERSION build-time
+ * configuration option (see unicode/uconfig.h)
+ * - the UCONFIG_NO_CONVERSION build option in uconfig.h is more usable
+ *
+ * @stable ICU 4.2
+ * @see UCONFIG_NO_CONVERSION
+ */
+#ifndef U_CHARSET_IS_UTF8
+# define U_CHARSET_IS_UTF8 0
+#endif
+
/*===========================================================================*/
/* ICUDATA naming scheme */
/*===========================================================================*/
@@ -171,29 +232,36 @@
* ICU 1.8.x on EBCDIC, etc..
* @stable ICU 2.0
*/
-#define U_ICUDATA_NAME "icudt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER
-
+#define U_ICUDATA_NAME "icudt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER /**< @internal */
+#define U_USRDATA_NAME "usrdt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER /**< @internal */
+#define U_USE_USRDATA 0 /**< @internal */
/**
* U_ICU_ENTRY_POINT is the name of the DLL entry point to the ICU data library.
* Defined as a literal, not a string.
* Tricky Preprocessor use - ## operator replaces macro paramters with the literal string
* from the corresponding macro invocation, _before_ other macro substitutions.
- * Need a nested #defines to get the actual version numbers rather than
+ * Need a nested \#defines to get the actual version numbers rather than
* the literal text U_ICU_VERSION_MAJOR_NUM into the name.
* The net result will be something of the form
- * #define U_ICU_ENTRY_POINT icudt19_dat
+ * \#define U_ICU_ENTRY_POINT icudt19_dat
* @stable ICU 2.4
*/
#define U_ICUDATA_ENTRY_POINT U_DEF2_ICUDATA_ENTRY_POINT(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM)
+
/**
+ * Do not use.
* @internal
*/
#define U_DEF2_ICUDATA_ENTRY_POINT(major, minor) U_DEF_ICUDATA_ENTRY_POINT(major, minor)
/**
+ * Do not use.
* @internal
*/
+#ifndef U_DEF_ICUDATA_ENTRY_POINT
+/* affected by symbol renaming. See platform.h */
#define U_DEF_ICUDATA_ENTRY_POINT(major, minor) icudt##major##minor##_dat
+#endif
/**
* \def U_CALLCONV
@@ -206,7 +274,7 @@
* you must use the U_CAPI and U_EXPORT2 qualifiers.
* @stable ICU 2.0
*/
-#if defined(OS390) && (__COMPILER_VER__ < 0x41020000) && defined(XP_CPLUSPLUS)
+#if defined(OS390) && defined(XP_CPLUSPLUS)
# define U_CALLCONV __cdecl
#else
# define U_CALLCONV U_EXPORT2
@@ -318,7 +386,7 @@ typedef void* UClassID;
* \def U_DATA_API
* Set to export library symbols from inside the stubdata library,
* and to import them from outside.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
/**
@@ -356,6 +424,13 @@ typedef void* UClassID;
* @stable ICU 2.0
*/
+/**
+ * \def U_TOOLUTIL_API
+ * Set to export library symbols from inside the toolutil library,
+ * and to import them from outside.
+ * @stable ICU 3.4
+ */
+
#if defined(U_COMBINED_IMPLEMENTATION)
#define U_DATA_API U_EXPORT
#define U_COMMON_API U_EXPORT
@@ -363,6 +438,7 @@ typedef void* UClassID;
#define U_LAYOUT_API U_EXPORT
#define U_LAYOUTEX_API U_EXPORT
#define U_IO_API U_EXPORT
+#define U_TOOLUTIL_API U_EXPORT
#elif defined(U_STATIC_IMPLEMENTATION)
#define U_DATA_API
#define U_COMMON_API
@@ -370,6 +446,7 @@ typedef void* UClassID;
#define U_LAYOUT_API
#define U_LAYOUTEX_API
#define U_IO_API
+#define U_TOOLUTIL_API
#elif defined(U_COMMON_IMPLEMENTATION)
#define U_DATA_API U_IMPORT
#define U_COMMON_API U_EXPORT
@@ -377,6 +454,7 @@ typedef void* UClassID;
#define U_LAYOUT_API U_IMPORT
#define U_LAYOUTEX_API U_IMPORT
#define U_IO_API U_IMPORT
+#define U_TOOLUTIL_API U_IMPORT
#elif defined(U_I18N_IMPLEMENTATION)
#define U_DATA_API U_IMPORT
#define U_COMMON_API U_IMPORT
@@ -384,6 +462,7 @@ typedef void* UClassID;
#define U_LAYOUT_API U_IMPORT
#define U_LAYOUTEX_API U_IMPORT
#define U_IO_API U_IMPORT
+#define U_TOOLUTIL_API U_IMPORT
#elif defined(U_LAYOUT_IMPLEMENTATION)
#define U_DATA_API U_IMPORT
#define U_COMMON_API U_IMPORT
@@ -391,6 +470,7 @@ typedef void* UClassID;
#define U_LAYOUT_API U_EXPORT
#define U_LAYOUTEX_API U_IMPORT
#define U_IO_API U_IMPORT
+#define U_TOOLUTIL_API U_IMPORT
#elif defined(U_LAYOUTEX_IMPLEMENTATION)
#define U_DATA_API U_IMPORT
#define U_COMMON_API U_IMPORT
@@ -398,6 +478,7 @@ typedef void* UClassID;
#define U_LAYOUT_API U_IMPORT
#define U_LAYOUTEX_API U_EXPORT
#define U_IO_API U_IMPORT
+#define U_TOOLUTIL_API U_IMPORT
#elif defined(U_IO_IMPLEMENTATION)
#define U_DATA_API U_IMPORT
#define U_COMMON_API U_IMPORT
@@ -405,6 +486,15 @@ typedef void* UClassID;
#define U_LAYOUT_API U_IMPORT
#define U_LAYOUTEX_API U_IMPORT
#define U_IO_API U_EXPORT
+#define U_TOOLUTIL_API U_IMPORT
+#elif defined(U_TOOLUTIL_IMPLEMENTATION)
+#define U_DATA_API U_IMPORT
+#define U_COMMON_API U_IMPORT
+#define U_I18N_API U_IMPORT
+#define U_LAYOUT_API U_IMPORT
+#define U_LAYOUTEX_API U_IMPORT
+#define U_IO_API U_IMPORT
+#define U_TOOLUTIL_API U_EXPORT
#else
#define U_DATA_API U_IMPORT
#define U_COMMON_API U_IMPORT
@@ -412,6 +502,7 @@ typedef void* UClassID;
#define U_LAYOUT_API U_IMPORT
#define U_LAYOUTEX_API U_IMPORT
#define U_IO_API U_IMPORT
+#define U_TOOLUTIL_API U_IMPORT
#endif
/**
@@ -449,10 +540,11 @@ typedef void* UClassID;
*
* Note: This is currently only done on Windows because
* some Linux/Unix compilers have problems with defining global new/delete.
- * On Windows, WIN32 is defined, and it is _MSC_Ver>=1200 for MSVC 6.0 and higher.
+ * On Windows, U_WINDOWS is defined, and it is _MSC_VER>=1200 for MSVC 6.0 and higher.
*/
-#if defined(XP_CPLUSPLUS) && defined(WIN32) && (_MSC_Ver>=1200) && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_USTDIO_IMPLEMENTATION))
+#if defined(XP_CPLUSPLUS) && defined(WIN32) && U_DEBUG && U_OVERRIDE_CXX_ALLOCATION && (_MSC_VER>=1200) && !defined(U_STATIC_IMPLEMENTATION) && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION))
+#ifndef U_HIDE_INTERNAL_API
/**
* Global operator new, defined only inside ICU4C, must not be used.
* Crashes intentionally.
@@ -465,6 +557,10 @@ operator new(size_t /*size*/) {
return q;
}
+#ifdef _Ret_bytecap_
+/* This is only needed to suppress a Visual C++ 2008 warning for operator new[]. */
+_Ret_bytecap_(_Size)
+#endif
/**
* Global operator new[], defined only inside ICU4C, must not be used.
* Crashes intentionally.
@@ -499,6 +595,7 @@ operator delete[](void * /*p*/) {
*q=5; /* break it */
}
+#endif /* U_HIDE_INTERNAL_API */
#endif
/*===========================================================================*/
@@ -542,6 +639,8 @@ typedef enum UErrorCode {
U_AMBIGUOUS_ALIAS_WARNING = -122, /**< This converter alias can go to different converter implementations */
U_DIFFERENT_UCA_VERSION = -121, /**< ucol_open encountered a mismatch between UCA version and collator image version, so the collator was constructed from rules. No impact to further function */
+
+ U_PLUGIN_CHANGED_LEVEL_WARNING = -120, /**< A plugin caused a level change. May not be an error, but later plugins may not load. */
U_ERROR_WARNING_LIMIT, /**< This must always be the last warning value to indicate the limit for UErrorCode warnings (last warning code +1) */
@@ -559,7 +658,7 @@ typedef enum UErrorCode {
U_PARSE_ERROR = 9, /**< Equivalent to Java ParseException */
U_INVALID_CHAR_FOUND = 10, /**< Character conversion: Unmappable input sequence. In other APIs: Invalid character. */
U_TRUNCATED_CHAR_FOUND = 11, /**< Character conversion: Incomplete input sequence. */
- U_ILLEGAL_CHAR_FOUND = 12, /**< Character conversion: Illegal input sequence/combination of input units.. */
+ U_ILLEGAL_CHAR_FOUND = 12, /**< Character conversion: Illegal input sequence/combination of input units. */
U_INVALID_TABLE_FORMAT = 13, /**< Conversion table file found, but corrupted */
U_INVALID_TABLE_FILE = 14, /**< Conversion table file not found */
U_BUFFER_OVERFLOW_ERROR = 15, /**< A result would not fit in the supplied buffer */
@@ -578,6 +677,7 @@ typedef enum UErrorCode {
U_INVALID_STATE_ERROR = 27, /**< Requested operation can not be completed with ICU in its current state */
U_COLLATOR_VERSION_MISMATCH = 28, /**< Collator version is not compatible with the base version */
U_USELESS_COLLATOR_ERROR = 29, /**< Collator is options only and no base is specified */
+ U_NO_WRITE_PERMISSION = 30, /**< Attempt to modify read-only or constant data. */
U_STANDARD_ERROR_LIMIT, /**< This must always be the last value to indicate the limit for standard errors */
/*
@@ -638,13 +738,18 @@ typedef enum UErrorCode {
U_UNMATCHED_BRACES, /**< Braces do not match in message pattern */
U_UNSUPPORTED_PROPERTY, /**< UNUSED as of ICU 2.4 */
U_UNSUPPORTED_ATTRIBUTE, /**< UNUSED as of ICU 2.4 */
+ U_ARGUMENT_TYPE_MISMATCH, /**< Argument name and argument index mismatch in MessageFormat functions */
+ U_DUPLICATE_KEYWORD, /**< Duplicate keyword in PluralFormat */
+ U_UNDEFINED_KEYWORD, /**< Undefined Plural keyword */
+ U_DEFAULT_KEYWORD_MISSING, /**< Missing DEFAULT rule in plural rules */
+ U_DECIMAL_NUMBER_SYNTAX_ERROR, /**< Decimal number syntax error */
U_FMT_PARSE_ERROR_LIMIT, /**< The limit for format library errors */
/*
* the error code range 0x10200 0x102ff are reserved for Break Iterator related error
*/
+ U_BRK_INTERNAL_ERROR=0x10200, /**< An internal error (bug) was detected. */
U_BRK_ERROR_START=0x10200, /**< Start of codes indicating Break Iterator failures */
- U_BRK_INTERNAL_ERROR, /**< An internal error (bug) was detected. */
U_BRK_HEX_DIGITS_EXPECTED, /**< Hex digits expected as part of a escaped char in a rule. */
U_BRK_SEMICOLON_EXPECTED, /**< Missing ';' at the end of a RBBI rule. */
U_BRK_RULE_SYNTAX, /**< Syntax error in RBBI rule. */
@@ -663,8 +768,8 @@ typedef enum UErrorCode {
/*
* The error codes in the range 0x10300-0x103ff are reserved for regular expression related errrs
*/
+ U_REGEX_INTERNAL_ERROR=0x10300, /**< An internal error (bug) was detected. */
U_REGEX_ERROR_START=0x10300, /**< Start of codes indicating Regexp failures */
- U_REGEX_INTERNAL_ERROR, /**< An internal error (bug) was detected. */
U_REGEX_RULE_SYNTAX, /**< Syntax error in regexp pattern. */
U_REGEX_INVALID_STATE, /**< RegexMatcher in invalid state for requested operation */
U_REGEX_BAD_ESCAPE_SEQUENCE, /**< Unrecognized backslash escape sequence in pattern */
@@ -678,19 +783,27 @@ typedef enum UErrorCode {
U_REGEX_INVALID_FLAG, /**< Invalid value for match mode flags. */
U_REGEX_LOOK_BEHIND_LIMIT, /**< Look-Behind pattern matches must have a bounded maximum length. */
U_REGEX_SET_CONTAINS_STRING, /**< Regexps cannot have UnicodeSets containing strings.*/
+ U_REGEX_OCTAL_TOO_BIG, /**< Octal character constants must be <= 0377. */
+ U_REGEX_MISSING_CLOSE_BRACKET, /**< Missing closing bracket on a bracket expression. */
+ U_REGEX_INVALID_RANGE, /**< In a character range [x-y], x is greater than y. */
+ U_REGEX_STACK_OVERFLOW, /**< Regular expression backtrack stack overflow. */
+ U_REGEX_TIME_OUT, /**< Maximum allowed match time exceeded */
+ U_REGEX_STOPPED_BY_CALLER, /**< Matching operation aborted by user callback fn. */
U_REGEX_ERROR_LIMIT, /**< This must always be the last value to indicate the limit for regexp errors */
/*
* The error code in the range 0x10400-0x104ff are reserved for IDNA related error codes
*/
+ U_IDNA_PROHIBITED_ERROR=0x10400,
U_IDNA_ERROR_START=0x10400,
- U_IDNA_PROHIBITED_ERROR,
U_IDNA_UNASSIGNED_ERROR,
U_IDNA_CHECK_BIDI_ERROR,
U_IDNA_STD3_ASCII_RULES_ERROR,
U_IDNA_ACE_PREFIX_ERROR,
U_IDNA_VERIFICATION_ERROR,
U_IDNA_LABEL_TOO_LONG_ERROR,
+ U_IDNA_ZERO_LENGTH_LABEL_ERROR,
+ U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR,
U_IDNA_ERROR_LIMIT,
/*
* Aliases for StringPrep
@@ -698,9 +811,16 @@ typedef enum UErrorCode {
U_STRINGPREP_PROHIBITED_ERROR = U_IDNA_PROHIBITED_ERROR,
U_STRINGPREP_UNASSIGNED_ERROR = U_IDNA_UNASSIGNED_ERROR,
U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR,
+
+ /*
+ * The error code in the range 0x10500-0x105ff are reserved for Plugin related error codes
+ */
+ U_PLUGIN_ERROR_START=0x10500, /**< Start of codes indicating plugin failures */
+ U_PLUGIN_TOO_HIGH=0x10500, /**< The plugin's level is too high to be loaded right now. */
+ U_PLUGIN_DIDNT_SET_LEVEL, /**< The plugin didn't call uplug_setPlugLevel in response to a QUERY */
+ U_PLUGIN_ERROR_LIMIT, /**< This must always be the last value to indicate the limit for plugin errors */
-
- U_ERROR_LIMIT=U_IDNA_ERROR_LIMIT /**< This must always be the last value to indicate the limit for UErrorCode (last error code +1) */
+ U_ERROR_LIMIT=U_PLUGIN_ERROR_LIMIT /**< This must always be the last value to indicate the limit for UErrorCode (last error code +1) */
} UErrorCode;
/* Use the following to determine if an UErrorCode represents */
diff --git a/Source/WebKit/mac/icu/unicode/uvernum.h b/Source/WebKit/mac/icu/unicode/uvernum.h
new file mode 100644
index 000000000..722161292
--- /dev/null
+++ b/Source/WebKit/mac/icu/unicode/uvernum.h
@@ -0,0 +1,138 @@
+/*
+*******************************************************************************
+* Copyright (C) 2000-2011, International Business Machines
+* Corporation and others. All Rights Reserved.
+*******************************************************************************
+*
+* file name: uvernum.h
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* Created by: Vladimir Weinstein
+* Updated by: Steven R. Loomis
+*
+* Gets included by uversion.h and other files.
+*
+* IMPORTANT: When updating version, the following things need to be done:
+* source/common/unicode/uvernum.h - this file: update major, minor,
+* patchlevel, suffix, version, short version constants, namespace,
+* renaming macro, and copyright
+*
+* The following files need to be updated as well, which can be done
+* by running the UNIX makefile target 'update-windows-makefiles' in icu/source.
+*
+*
+* source/common/common.vcproj - update 'Output file name' on the link tab so
+* that it contains the new major/minor combination
+* source/i18n/i18n.vcproj - same as for the common.vcproj
+* source/layout/layout.vcproj - same as for the common.vcproj
+* source/layoutex/layoutex.vcproj - same
+* source/stubdata/stubdata.vcproj - same as for the common.vcproj
+* source/io/io.vcproj - same as for the common.vcproj
+* source/data/makedata.mak - change U_ICUDATA_NAME so that it contains
+* the new major/minor combination and the Unicode version.
+*/
+
+#ifndef UVERNUM_H
+#define UVERNUM_H
+
+/** The standard copyright notice that gets compiled into each library.
+ * This value will change in the subsequent releases of ICU
+ * @stable ICU 2.4
+ */
+#define U_COPYRIGHT_STRING \
+ " Copyright (C) 2011, International Business Machines Corporation and others. All Rights Reserved. "
+
+/** The current ICU major version as an integer.
+ * This value will change in the subsequent releases of ICU
+ * @stable ICU 2.4
+ */
+#define U_ICU_VERSION_MAJOR_NUM 4
+
+/** The current ICU minor version as an integer.
+ * This value will change in the subsequent releases of ICU
+ * @stable ICU 2.6
+ */
+#define U_ICU_VERSION_MINOR_NUM 6
+
+/** The current ICU patchlevel version as an integer.
+ * This value will change in the subsequent releases of ICU
+ * @stable ICU 2.4
+ */
+#define U_ICU_VERSION_PATCHLEVEL_NUM 1
+
+/** The current ICU build level version as an integer.
+ * This value is for use by ICU clients. It defaults to 0.
+ * @stable ICU 4.0
+ */
+#ifndef U_ICU_VERSION_BUILDLEVEL_NUM
+#define U_ICU_VERSION_BUILDLEVEL_NUM 0
+#endif
+
+/** Glued version suffix for renamers
+ * This value will change in the subsequent releases of ICU
+ * @stable ICU 2.6
+ */
+#define U_ICU_VERSION_SUFFIX _46
+
+/** Glued version suffix function for renamers
+ * This value will change in the subsequent releases of ICU.
+ * If a custom suffix (such as matching library suffixes) is desired, this can be modified.
+ * Note that if present, platform.h may contain an earlier definition of this macro.
+ * @stable ICU 4.2
+ */
+#ifndef U_ICU_ENTRY_POINT_RENAME
+#define U_ICU_ENTRY_POINT_RENAME(x) x ## _46
+#endif
+
+/** The current ICU library version as a dotted-decimal string. The patchlevel
+ * only appears in this string if it non-zero.
+ * This value will change in the subsequent releases of ICU
+ * @stable ICU 2.4
+ */
+#define U_ICU_VERSION "4.6.1"
+
+/** The current ICU library major/minor version as a string without dots, for library name suffixes.
+ * This value will change in the subsequent releases of ICU
+ * @stable ICU 2.6
+ */
+#define U_ICU_VERSION_SHORT "46"
+
+/** Data version in ICU4C.
+ * @internal ICU 4.4 Internal Use Only
+ **/
+#define U_ICU_DATA_VERSION "4.6"
+
+/*===========================================================================
+ * ICU collation framework version information
+ * Version info that can be obtained from a collator is affected by these
+ * numbers in a secret and magic way. Please use collator version as whole
+ *===========================================================================
+ */
+
+/**
+ * Collation runtime version (sort key generator, strcoll).
+ * If the version is different, sort keys for the same string could be different.
+ * This value may change in subsequent releases of ICU.
+ * @stable ICU 2.4
+ */
+#define UCOL_RUNTIME_VERSION 7
+
+/**
+ * Collation builder code version.
+ * When this is different, the same tailoring might result
+ * in assigning different collation elements to code points.
+ * This value may change in subsequent releases of ICU.
+ * @stable ICU 2.4
+ */
+#define UCOL_BUILDER_VERSION 8
+
+/**
+ * This is the version of collation tailorings.
+ * This value may change in subsequent releases of ICU.
+ * @stable ICU 2.4
+ */
+#define UCOL_TAILORINGS_VERSION 1
+
+#endif
diff --git a/Source/WebKit/mac/icu/unicode/uversion.h b/Source/WebKit/mac/icu/unicode/uversion.h
index f9a7755b9..e54cd55a6 100644
--- a/Source/WebKit/mac/icu/unicode/uversion.h
+++ b/Source/WebKit/mac/icu/unicode/uversion.h
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2010, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
*
@@ -11,10 +11,13 @@
*
* Created by: Vladimir Weinstein
*
-* Contains all the important version numbers for ICU.
* Gets included by utypes.h and Windows .rc files
*/
+/**
+ * \file
+ * \brief C API: API for accessing ICU version numbers.
+ */
/*===========================================================================*/
/* Main ICU version information */
/*===========================================================================*/
@@ -22,72 +25,16 @@
#ifndef UVERSION_H
#define UVERSION_H
-/** IMPORTANT: When updating version, the following things need to be done: */
-/** source/common/unicode/uversion.h - this file: update major, minor, */
-/** patchlevel, suffix, version, short version constants, namespace, */
-/** and copyright */
-/** source/common/common.dsp - update 'Output file name' on the link tab so */
-/** that it contains the new major/minor combination */
-/** source/i18n/i18n.dsp - same as for the common.dsp */
-/** source/layout/layout.dsp - same as for the common.dsp */
-/** source/stubdata/stubdata.dsp - same as for the common.dsp */
-/** source/extra/ustdio/ustdio.dsp - same as for the common.dsp */
-/** source/data/makedata.mak - change U_ICUDATA_NAME so that it contains */
-/** the new major/minor combination */
-/** source/tools/genren/genren.pl - use this script according to the README */
-/** in that folder */
-
#include "unicode/umachine.h"
-/** The standard copyright notice that gets compiled into each library.
- * This value will change in the subsequent releases of ICU
- * @stable ICU 2.4
- */
-#define U_COPYRIGHT_STRING \
- " Copyright (C) 2004, International Business Machines Corporation and others. All Rights Reserved. "
+/* Actual version info lives in uvernum.h */
+#include "unicode/uvernum.h"
/** Maximum length of the copyright string.
* @stable ICU 2.4
*/
#define U_COPYRIGHT_STRING_LENGTH 128
-/** The current ICU major version as an integer.
- * This value will change in the subsequent releases of ICU
- * @stable ICU 2.4
- */
-#define U_ICU_VERSION_MAJOR_NUM 3
-
-/** The current ICU minor version as an integer.
- * This value will change in the subsequent releases of ICU
- * @stable ICU 2.6
- */
-#define U_ICU_VERSION_MINOR_NUM 2
-
-/** The current ICU patchlevel version as an integer.
- * This value will change in the subsequent releases of ICU
- * @stable ICU 2.4
- */
-#define U_ICU_VERSION_PATCHLEVEL_NUM 0
-
-/** Glued version suffix for renamers
- * This value will change in the subsequent releases of ICU
- * @stable ICU 2.6
- */
-#define U_ICU_VERSION_SUFFIX _3_2
-
-/** The current ICU library version as a dotted-decimal string. The patchlevel
- * only appears in this string if it non-zero.
- * This value will change in the subsequent releases of ICU
- * @stable ICU 2.4
- */
-#define U_ICU_VERSION "3.2"
-
-/** The current ICU library major/minor version as a string without dots, for library name suffixes.
- * This value will change in the subsequent releases of ICU
- * @stable ICU 2.6
- */
-#define U_ICU_VERSION_SHORT "32"
-
/** An ICU version consists of up to 4 numbers from 0..255.
* @stable ICU 2.4
*/
@@ -104,23 +51,89 @@
#define U_MAX_VERSION_STRING_LENGTH 20
/** The binary form of a version on ICU APIs is an array of 4 uint8_t.
+ * To compare two versions, use memcmp(v1,v2,sizeof(UVersionInfo)).
* @stable ICU 2.4
*/
typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH];
-#if U_HAVE_NAMESPACE && defined(XP_CPLUSPLUS)
-#if U_DISABLE_RENAMING
-#define U_ICU_NAMESPACE icu
-namespace U_ICU_NAMESPACE { }
+/*===========================================================================*/
+/* C++ namespace if supported. Versioned unless versioning is disabled. */
+/*===========================================================================*/
+
+/**
+ * \def U_NAMESPACE_BEGIN
+ * This is used to begin a declaration of a public ICU C++ API.
+ * When not compiling for C++, it does nothing.
+ * When compiling for C++, it begins an extern "C++" linkage block (to protect
+ * against cases in which an external client includes ICU header files inside
+ * an extern "C" linkage block).
+ * If the C++ compiler supports namespaces, it also begins a namespace block.
+ * @stable ICU 2.4
+ */
+
+/**
+ * \def U_NAMESPACE_END
+ * This is used to end a declaration of a public ICU C++ API.
+ * When not compiling for C++, it does nothing.
+ * When compiling for C++, it ends the extern "C++" block begun by
+ * U_NAMESPACE_BEGIN.
+ * If the C++ compiler supports namespaces, it also ends the namespace block
+ * begun by U_NAMESPACE_BEGIN.
+ * @stable ICU 2.4
+ */
+
+/**
+ * \def U_NAMESPACE_USE
+ * This is used to specify that the rest of the code uses the
+ * public ICU C++ API namespace.
+ * If the compiler doesn't support namespaces, this does nothing.
+ * @stable ICU 2.4
+ */
+
+/**
+ * \def U_NAMESPACE_QUALIFIER
+ * This is used to qualify that a function or class is part of
+ * the public ICU C++ API namespace.
+ * If the compiler doesn't support namespaces, this does nothing.
+ * @stable ICU 2.4
+ */
+
+/* Define namespace symbols if the compiler supports it. */
+#ifdef XP_CPLUSPLUS
+#if U_HAVE_NAMESPACE
+# if U_DISABLE_RENAMING
+# define U_ICU_NAMESPACE icu
+ namespace U_ICU_NAMESPACE { }
+# else
+# define U_ICU_NAMESPACE U_ICU_ENTRY_POINT_RENAME(icu)
+ namespace U_ICU_NAMESPACE { }
+ namespace icu = U_ICU_NAMESPACE;
+# endif
+
+# define U_NAMESPACE_BEGIN extern "C++" { namespace U_ICU_NAMESPACE {
+# define U_NAMESPACE_END } }
+# define U_NAMESPACE_USE using namespace U_ICU_NAMESPACE;
+# define U_NAMESPACE_QUALIFIER U_ICU_NAMESPACE::
+
+# ifndef U_USING_ICU_NAMESPACE
+# define U_USING_ICU_NAMESPACE 1
+# endif
+# if U_USING_ICU_NAMESPACE
+ U_NAMESPACE_USE
+# endif
#else
-#define U_ICU_NAMESPACE icu_3_2
-namespace U_ICU_NAMESPACE { }
-namespace icu = U_ICU_NAMESPACE;
+# define U_NAMESPACE_BEGIN extern "C++" {
+# define U_NAMESPACE_END }
+# define U_NAMESPACE_USE
+# define U_NAMESPACE_QUALIFIER
#endif
-U_NAMESPACE_USE
+#else
+# define U_NAMESPACE_BEGIN
+# define U_NAMESPACE_END
+# define U_NAMESPACE_USE
+# define U_NAMESPACE_QUALIFIER
#endif
-
/*===========================================================================*/
/* General version helper functions. Definitions in putil.c */
/*===========================================================================*/
@@ -140,6 +153,21 @@ U_STABLE void U_EXPORT2
u_versionFromString(UVersionInfo versionArray, const char *versionString);
/**
+ * Parse a Unicode string with dotted-decimal version information and
+ * fill in a UVersionInfo structure with the result.
+ * Definition of this function lives in putil.c
+ *
+ * @param versionArray The destination structure for the version information.
+ * @param versionString A Unicode string with dotted-decimal version
+ * information, with up to four non-negative number
+ * fields with values of up to 255 each.
+ * @stable ICU 4.2
+ */
+U_STABLE void U_EXPORT2
+u_versionFromUString(UVersionInfo versionArray, const UChar *versionString);
+
+
+/**
* Write a string with dotted-decimal version information according
* to the input UVersionInfo.
* Definition of this function lives in putil.c
@@ -164,53 +192,4 @@ u_versionToString(UVersionInfo versionArray, char *versionString);
*/
U_STABLE void U_EXPORT2
u_getVersion(UVersionInfo versionArray);
-
-
-/*===========================================================================
- * ICU collation framework version information
- * Version info that can be obtained from a collator is affected by these
- * numbers in a secret and magic way. Please use collator version as whole
- *===========================================================================
- */
-
-/** Collation runtime version (sort key generator, strcoll).
- * If the version is different, sortkeys for the same string could be different
- * version 2 was in ICU 1.8.1. changed is: compression intervals, French secondary
- * compression, generating quad level always when strength is quad or more
- * version 4 - ICU 2.2 - tracking UCA changes, ignore completely ignorables
- * in contractions, ignore primary ignorables after shifted
- * version 5 - ICU 2.8 - changed implicit generation code
- * This value may change in the subsequent releases of ICU
- * @stable ICU 2.4
- */
-#define UCOL_RUNTIME_VERSION 5
-
-/** Builder code version. When this is different, same tailoring might result
- * in assigning different collation elements to code points
- * version 2 was in ICU 1.8.1. added support for prefixes, tweaked canonical
- * closure. However, the tailorings should probably get same CEs assigned
- * version 5 - ICU 2.2 - fixed some bugs, renamed some indirect values.
- * version 6 - ICU 2.8 - fixed bug in builder that allowed 0xFF in primary values
- * Backward compatible with the old rules.
- * This value may change in the subsequent releases of ICU
- * @stable ICU 2.4
- */
-#define UCOL_BUILDER_VERSION 6
-
-/** *** Removed *** Instead we use the data we read from FractionalUCA.txt
- * This is the version of FractionalUCA.txt tailoring rules
- * Version 1 was in ICU 1.8.1. Version two contains canonical closure for
- * supplementary code points
- * Version 4 in ICU 2.2, following UCA=3.1.1d6, UCD=3.2.0
- * This value may change in the subsequent releases of ICU
- * @stable ICU 2.4
- */
-/*#define UCOL_FRACTIONAL_UCA_VERSION 4*/
-
-/** This is the version of the tailorings
- * This value may change in the subsequent releases of ICU
- * @stable ICU 2.4
- */
-#define UCOL_TAILORINGS_VERSION 1
-
#endif
diff --git a/Source/WebKit/qt/Api/qwebframe.cpp b/Source/WebKit/qt/Api/qwebframe.cpp
index 8ac18f8e3..adbfa1ccd 100644
--- a/Source/WebKit/qt/Api/qwebframe.cpp
+++ b/Source/WebKit/qt/Api/qwebframe.cpp
@@ -1406,7 +1406,7 @@ QWebHitTestResult QWebFrame::hitTestContent(const QPoint &pos) const
if (!d->frame->view() || !d->frame->contentRenderer())
return QWebHitTestResult();
- HitTestResult result = d->frame->eventHandler()->hitTestResultAtPoint(d->frame->view()->windowToContents(pos), HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::IgnoreClipping);
+ HitTestResult result = d->frame->eventHandler()->hitTestResultAtPoint(d->frame->view()->windowToContents(pos), /*allowShadowContent*/ false, /*ignoreClipping*/ true);
if (result.scrollbar())
return QWebHitTestResult();
diff --git a/Source/WebKit/qt/Api/qwebpage.cpp b/Source/WebKit/qt/Api/qwebpage.cpp
index e1c06515b..a327eaf2e 100644
--- a/Source/WebKit/qt/Api/qwebpage.cpp
+++ b/Source/WebKit/qt/Api/qwebpage.cpp
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2008, 2009 Nokia Corporation and/or its subsidiary(-ies)
+ Copyright (C) 2008, 2009, 2012 Nokia Corporation and/or its subsidiary(-ies)
Copyright (C) 2007 Staikos Computing Services Inc.
Copyright (C) 2007 Apple Inc.
@@ -113,7 +113,9 @@
#include "SystemInfo.h"
#endif // Q_OS_WIN32
#include "TextIterator.h"
+#include "UserAgentQt.h"
#include "WebEventConversion.h"
+#include "WebKitVersion.h"
#include "WindowFeatures.h"
#include "WorkerThread.h"
@@ -800,7 +802,7 @@ void QWebPagePrivate::handleSoftwareInputPanel(Qt::MouseButton button, const QPo
QStyle::RequestSoftwareInputPanel behavior = QStyle::RequestSoftwareInputPanel(
client->ownerWidget()->style()->styleHint(QStyle::SH_RequestSoftwareInputPanel));
if (!clickCausedFocus || behavior == QStyle::RSIP_OnMouseClick) {
- HitTestResult result = frame->eventHandler()->hitTestResultAtPoint(frame->view()->windowToContents(pos));
+ HitTestResult result = frame->eventHandler()->hitTestResultAtPoint(frame->view()->windowToContents(pos), false);
if (result.isContentEditable()) {
QEvent event(QEvent::RequestSoftwareInputPanel);
QApplication::sendEvent(client->ownerWidget(), &event);
@@ -1557,7 +1559,7 @@ IntPoint QWebPagePrivate::TouchAdjuster::findCandidatePointForTouch(const IntPoi
int x = touchPoint.x();
int y = touchPoint.y();
- RefPtr<NodeList> intersectedNodes = document->nodesFromRect(x, y, m_topPadding, m_rightPadding, m_bottomPadding, m_leftPadding);
+ RefPtr<NodeList> intersectedNodes = document->nodesFromRect(x, y, m_topPadding, m_rightPadding, m_bottomPadding, m_leftPadding, false /*ignoreClipping*/, false /*allowShadowContent*/);
if (!intersectedNodes)
return IntPoint();
@@ -3363,7 +3365,7 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos)
d->createMainFrame();
WebCore::Frame* focusedFrame = d->page->focusController()->focusedOrMainFrame();
- HitTestResult result = focusedFrame->eventHandler()->hitTestResultAtPoint(focusedFrame->view()->windowToContents(pos));
+ HitTestResult result = focusedFrame->eventHandler()->hitTestResultAtPoint(focusedFrame->view()->windowToContents(pos), /*allowShadowContent*/ false);
if (result.scrollbar())
d->hitTestResult = QWebHitTestResult();
else
@@ -3784,158 +3786,7 @@ QWebPluginFactory *QWebPage::pluginFactory() const
*/
QString QWebPage::userAgentForUrl(const QUrl&) const
{
- // splitting the string in three and user QStringBuilder is better than using QString::arg()
- static QString firstPart;
- static QString secondPart;
- static QString thirdPart;
-
- if (firstPart.isNull() || secondPart.isNull() || thirdPart.isNull()) {
- QString firstPartTemp;
- firstPartTemp.reserve(150);
- firstPartTemp += QString::fromLatin1("Mozilla/5.0 ("
-
- // Platform
-#ifdef Q_WS_MAC
- "Macintosh; "
-#elif defined Q_WS_QWS
- "QtEmbedded; "
-#elif defined Q_WS_WIN
- // Nothing
-#elif defined Q_WS_X11
- "X11; "
-#else
- "Unknown; "
-#endif
- );
-
-#if defined(QT_NO_OPENSSL)
- // No SSL support
- firstPartTemp += QString::fromLatin1("N; ");
-#endif
-
- // Operating system
-#ifdef Q_OS_AIX
- firstPartTemp += QString::fromLatin1("AIX");
-#elif defined Q_OS_WIN32
- firstPartTemp += windowsVersionForUAString();
-#elif defined Q_OS_DARWIN
-#ifdef __i386__ || __x86_64__
- firstPartTemp += QString::fromLatin1("Intel Mac OS X");
-#else
- firstPartTemp += QString::fromLatin1("PPC Mac OS X");
-#endif
-
-#elif defined Q_OS_BSDI
- firstPartTemp += QString::fromLatin1("BSD");
-#elif defined Q_OS_BSD4
- firstPartTemp += QString::fromLatin1("BSD Four");
-#elif defined Q_OS_CYGWIN
- firstPartTemp += QString::fromLatin1("Cygwin");
-#elif defined Q_OS_DGUX
- firstPartTemp += QString::fromLatin1("DG/UX");
-#elif defined Q_OS_DYNIX
- firstPartTemp += QString::fromLatin1("DYNIX/ptx");
-#elif defined Q_OS_FREEBSD
- firstPartTemp += QString::fromLatin1("FreeBSD");
-#elif defined Q_OS_HPUX
- firstPartTemp += QString::fromLatin1("HP-UX");
-#elif defined Q_OS_HURD
- firstPartTemp += QString::fromLatin1("GNU Hurd");
-#elif defined Q_OS_IRIX
- firstPartTemp += QString::fromLatin1("SGI Irix");
-#elif defined Q_OS_LINUX
-
-#if defined(__x86_64__)
- firstPartTemp += QString::fromLatin1("Linux x86_64");
-#elif defined(__i386__)
- firstPartTemp += QString::fromLatin1("Linux i686");
-#else
- firstPartTemp += QString::fromLatin1("Linux");
-#endif
-
-#elif defined Q_OS_LYNX
- firstPartTemp += QString::fromLatin1("LynxOS");
-#elif defined Q_OS_NETBSD
- firstPartTemp += QString::fromLatin1("NetBSD");
-#elif defined Q_OS_OS2
- firstPartTemp += QString::fromLatin1("OS/2");
-#elif defined Q_OS_OPENBSD
- firstPartTemp += QString::fromLatin1("OpenBSD");
-#elif defined Q_OS_OS2EMX
- firstPartTemp += QString::fromLatin1("OS/2");
-#elif defined Q_OS_OSF
- firstPartTemp += QString::fromLatin1("HP Tru64 UNIX");
-#elif defined Q_OS_QNX6
- firstPartTemp += QString::fromLatin1("QNX RTP Six");
-#elif defined Q_OS_QNX
- firstPartTemp += QString::fromLatin1("QNX");
-#elif defined Q_OS_RELIANT
- firstPartTemp += QString::fromLatin1("Reliant UNIX");
-#elif defined Q_OS_SCO
- firstPartTemp += QString::fromLatin1("SCO OpenServer");
-#elif defined Q_OS_SOLARIS
- firstPartTemp += QString::fromLatin1("Sun Solaris");
-#elif defined Q_OS_ULTRIX
- firstPartTemp += QString::fromLatin1("DEC Ultrix");
-#elif defined Q_OS_UNIX
- firstPartTemp += QString::fromLatin1("UNIX BSD/SYSV system");
-#elif defined Q_OS_UNIXWARE
- firstPartTemp += QString::fromLatin1("UnixWare Seven, Open UNIX Eight");
-#else
- firstPartTemp += QString::fromLatin1("Unknown");
-#endif
-
-#if USE(QT_MOBILITY_SYSTEMINFO)
- // adding Model Number
- QtMobility::QSystemDeviceInfo systemDeviceInfo;
-
- QString model = systemDeviceInfo.model();
- if (!model.isEmpty()) {
- if (!firstPartTemp.endsWith("; "))
- firstPartTemp += QString::fromLatin1("; ");
- firstPartTemp += systemDeviceInfo.model();
- }
-#endif
- firstPartTemp.squeeze();
- firstPart = firstPartTemp;
-
- QString secondPartTemp;
- secondPartTemp.reserve(150);
- secondPartTemp += QString::fromLatin1(") ");
-
- // webkit/qt version
- secondPartTemp += QString::fromLatin1("AppleWebKit/");
- secondPartTemp += qWebKitVersion();
- secondPartTemp += QString::fromLatin1(" (KHTML, like Gecko) ");
-
-
- // Application name split the third part
- secondPartTemp.squeeze();
- secondPart = secondPartTemp;
-
- QString thirdPartTemp;
- thirdPartTemp.reserve(150);
- thirdPartTemp += QLatin1String(" Safari/");
- thirdPartTemp += qWebKitVersion();
- thirdPartTemp.squeeze();
- thirdPart = thirdPartTemp;
- Q_ASSERT(!firstPart.isNull());
- Q_ASSERT(!secondPart.isNull());
- Q_ASSERT(!thirdPart.isNull());
- }
-
- // Application name/version
- QString appName = QCoreApplication::applicationName();
- if (!appName.isEmpty()) {
- QString appVer = QCoreApplication::applicationVersion();
- if (!appVer.isEmpty())
- appName.append(QLatin1Char('/') + appVer);
- } else {
- // Qt version
- appName = QString::fromLatin1("Qt/") + QString::fromLatin1(qVersion());
- }
-
- return firstPart + secondPart + appName + thirdPart;
+ return UserAgentQt::standardUserAgent("", WEBKIT_MAJOR_VERSION, WEBKIT_MINOR_VERSION);
}
diff --git a/Source/WebKit/qt/ChangeLog b/Source/WebKit/qt/ChangeLog
index 2f159f65b..53a092b85 100644
--- a/Source/WebKit/qt/ChangeLog
+++ b/Source/WebKit/qt/ChangeLog
@@ -1,3 +1,93 @@
+2012-09-13 Lauro Neto <lauro.neto@openbossa.org>
+
+ [Qt][WK2] fast/forms/access-key-for-all-elements.html fails
+ https://bugs.webkit.org/show_bug.cgi?id=73917
+
+ Reviewed by Simon Hausmann.
+
+ Access-key tests were failing due to hardcoded Mac OS X in the
+ Qt WK2 user agent string. This commit moves the WK1 implementation
+ to a shared one to be used by both versions.
+
+ Change QWebPage to use the shared user agent implementation.
+
+ * Api/qwebpage.cpp:
+ (QWebPage::userAgentForUrl):
+
+2012-09-13 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+ [Qt] Fix qdoc executable preparation
+
+ Reviewed by Tor Arne Vestbø.
+
+ * docs/docs.pri:
+
+2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r127876.
+ http://trac.webkit.org/changeset/127876
+ https://bugs.webkit.org/show_bug.cgi?id=96600
+
+ mouse click doesn't work for spin button if spin button in
+ iframe (Requested by yosin on #webkit).
+
+ * Api/qwebframe.cpp:
+ (QWebFrame::hitTestContent):
+ * Api/qwebpage.cpp:
+ (QWebPagePrivate::handleSoftwareInputPanel):
+ (QWebPagePrivate::TouchAdjuster::findCandidatePointForTouch):
+ (QWebPage::updatePositionDependentActions):
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction):
+
+2012-09-12 Roland Takacs <rtakacs@inf.u-szeged.hu>
+
+ [Qt] Segmentation fault when closing QtTestBrowser
+ https://bugs.webkit.org/show_bug.cgi?id=95003
+
+ Reviewed by Simon Hausmann.
+
+ Defined a new QObject* variable that points to the QGLWidget that was created
+ in 'createPlatformGraphicsContext3DFromWidget'.
+ It is neccessary for deallocating it.
+
+ * WebCoreSupport/PageClientQt.cpp:
+ (createPlatformGraphicsContext3DFromWidget):
+ (WebCore::PageClientQWidget::createPlatformGraphicsContext3D):
+ (WebCore::PageClientQGraphicsWidget::createPlatformGraphicsContext3D):
+ * WebCoreSupport/PageClientQt.h:
+ (PageClientQWidget):
+ (PageClientQGraphicsWidget):
+
+2012-09-12 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt] Add module identifier directive to the qmldir files
+ https://bugs.webkit.org/show_bug.cgi?id=96406
+
+ Reviewed by Simon Hausmann.
+
+ Qt5 QML modules need to be identified. Type registrations are only permitted
+ into the namespace identified in the qmldir file's module identifier directive.
+ Additionally this also facilitates the protection against external registrations.
+ This patch suppresses a warning when importing the QtWebKit module.
+
+ * declarative/experimental/qmldir:
+ * declarative/qmldir:
+
+2012-09-11 Marcelo Lira <marcelo.lira@openbossa.org>
+
+ Restore original value of mock scrollbars enabled in InternalSettings
+ https://bugs.webkit.org/show_bug.cgi?id=87680
+
+ Reviewed by Adam Barth.
+
+ Added backup support for mock scrollbars state in
+ InternalSettings::Backup, and removed support for these
+ from Qt's DumpRenderTree.
+
+ * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+ * WebCoreSupport/DumpRenderTreeSupportQt.h:
+
2012-09-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
[Qt] Add a configure step to the Qt build system
diff --git a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
index ac1654ec0..dc823165c 100644
--- a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
@@ -237,11 +237,6 @@ void DumpRenderTreeSupportQt::setFrameFlatteningEnabled(QWebPage* page, bool ena
QWebPagePrivate::core(page)->settings()->setFrameFlatteningEnabled(enabled);
}
-void DumpRenderTreeSupportQt::setMockScrollbarsEnabled(QWebPage* page, bool enabled)
-{
- QWebPagePrivate::core(page)->settings()->setMockScrollbarsEnabled(enabled);
-}
-
void DumpRenderTreeSupportQt::webPageSetGroupName(QWebPage* page, const QString& groupName)
{
page->handle()->page->setGroupName(groupName);
diff --git a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
index 92759acd3..862213657 100644
--- a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
+++ b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
@@ -104,7 +104,6 @@ public:
static void setDomainRelaxationForbiddenForURLScheme(bool forbidden, const QString& scheme);
static void setFrameFlatteningEnabled(QWebPage*, bool);
- static void setMockScrollbarsEnabled(QWebPage*, bool);
static void setCaretBrowsingEnabled(QWebPage* page, bool value);
static void setAuthorAndUserStylesEnabled(QWebPage*, bool);
static void setMediaType(QWebFrame* qframe, const QString& type);
diff --git a/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
index a5a1d80d9..eb73c9e9d 100644
--- a/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
@@ -644,7 +644,11 @@ void EditorClientQt::setInputMethodState(bool active)
bool EditorClientQt::supportsGlobalSelection()
{
+#ifndef QT_NO_CLIPBOARD
return qApp->clipboard()->supportsSelection();
+#else
+ return false;
+#endif
}
}
diff --git a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index 72a5e0049..bcf072d65 100644
--- a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -1272,7 +1272,7 @@ void FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFun
if (event->isMouseEvent()) {
const MouseEvent* mouseEvent = static_cast<const MouseEvent*>(event);
node = QWebFramePrivate::core(m_webFrame)->eventHandler()->hitTestResultAtPoint(
- mouseEvent->absoluteLocation()).innerNonSharedNode();
+ mouseEvent->absoluteLocation(), false).innerNonSharedNode();
break;
}
}
diff --git a/Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp
index 0093187af..2be1b3b3f 100644
--- a/Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp
@@ -36,11 +36,13 @@
#include <QWindow>
static void createPlatformGraphicsContext3DFromWidget(QWidget* widget, PlatformGraphicsContext3D* context,
- PlatformGraphicsSurface3D* surface)
+ PlatformGraphicsSurface3D* surface, QObject** surfaceOwner)
{
#ifdef QT_OPENGL_LIB
*context = 0;
*surface = 0;
+ if (surfaceOwner)
+ *surfaceOwner = 0;
QAbstractScrollArea* scrollArea = qobject_cast<QAbstractScrollArea*>(widget);
if (!scrollArea)
return;
@@ -52,6 +54,8 @@ static void createPlatformGraphicsContext3DFromWidget(QWidget* widget, PlatformG
if (glWidget->isValid()) {
// Geometry can be set to zero because m_glWidget is used only for its QGLContext.
glWidget->setGeometry(0, 0, 0, 0);
+ if (surfaceOwner)
+ *surfaceOwner = glWidget;
*surface = glWidget->windowHandle();
*context = glWidget->context()->contextHandle();
} else {
@@ -235,9 +239,10 @@ void PageClientQWidget::setWidgetVisible(Widget* widget, bool visible)
#if USE(3D_GRAPHICS)
void PageClientQWidget::createPlatformGraphicsContext3D(PlatformGraphicsContext3D* context,
- PlatformGraphicsSurface3D* surface)
+ PlatformGraphicsSurface3D* surface,
+ QObject** surfaceOwner)
{
- createPlatformGraphicsContext3DFromWidget(view, context, surface);
+ createPlatformGraphicsContext3DFromWidget(view, context, surface, surfaceOwner);
}
#endif
@@ -424,9 +429,10 @@ QRectF PageClientQGraphicsWidget::windowRect() const
#if USE(3D_GRAPHICS)
void PageClientQGraphicsWidget::createPlatformGraphicsContext3D(PlatformGraphicsContext3D* context,
- PlatformGraphicsSurface3D* surface)
+ PlatformGraphicsSurface3D* surface,
+ QObject** surfaceOwner)
{
- createPlatformGraphicsContext3DFromWidget(ownerWidget(), context, surface);
+ createPlatformGraphicsContext3DFromWidget(ownerWidget(), context, surface, surfaceOwner);
}
#endif
diff --git a/Source/WebKit/qt/WebCoreSupport/PageClientQt.h b/Source/WebKit/qt/WebCoreSupport/PageClientQt.h
index febca03f5..e6b9e1694 100644
--- a/Source/WebKit/qt/WebCoreSupport/PageClientQt.h
+++ b/Source/WebKit/qt/WebCoreSupport/PageClientQt.h
@@ -101,7 +101,8 @@ public:
#if USE(3D_GRAPHICS)
virtual void createPlatformGraphicsContext3D(PlatformGraphicsContext3D*,
- PlatformGraphicsSurface3D*);
+ PlatformGraphicsSurface3D*,
+ QObject**);
#endif
QWidget* view;
@@ -209,7 +210,8 @@ public:
#if USE(3D_GRAPHICS)
virtual void createPlatformGraphicsContext3D(PlatformGraphicsContext3D*,
- PlatformGraphicsSurface3D*);
+ PlatformGraphicsSurface3D*,
+ QObject**);
#endif
#if USE(TILED_BACKING_STORE)
diff --git a/Source/WebKit/qt/declarative/experimental/qmldir b/Source/WebKit/qt/declarative/experimental/qmldir
index c463e0b15..dfbc65cb7 100644
--- a/Source/WebKit/qt/declarative/experimental/qmldir
+++ b/Source/WebKit/qt/declarative/experimental/qmldir
@@ -1 +1,2 @@
+module QtWebKit.experimental
plugin qmlwebkitexperimentalplugin
diff --git a/Source/WebKit/qt/declarative/qmldir b/Source/WebKit/qt/declarative/qmldir
index dcfdd063a..b9c5d05dc 100644
--- a/Source/WebKit/qt/declarative/qmldir
+++ b/Source/WebKit/qt/declarative/qmldir
@@ -1 +1,2 @@
+module QtWebKit
plugin qmlwebkitplugin
diff --git a/Source/WebKit/qt/docs/docs.pri b/Source/WebKit/qt/docs/docs.pri
index b95f924f7..58704cc47 100644
--- a/Source/WebKit/qt/docs/docs.pri
+++ b/Source/WebKit/qt/docs/docs.pri
@@ -1,9 +1,4 @@
-QDOC = $$QT.core.bins/qdoc
-
-$$unixstyle {
-} else {
- QDOC = $$replace(QDOC, "qdoc", "qdoc3.exe")
-}
+qtPrepareTool(QDOC, qdoc)
QDOC = SRCDIR=$$PWD/../../.. OUTPUT_DIR=$${ROOT_BUILD_DIR} $$QDOC
diff --git a/Source/WebKit/win/ChangeLog b/Source/WebKit/win/ChangeLog
index 8a111a006..14a9396d4 100644
--- a/Source/WebKit/win/ChangeLog
+++ b/Source/WebKit/win/ChangeLog
@@ -1,3 +1,25 @@
+2012-09-13 Brent Fulgham <bfulgham@webkit.org>
+
+ [WinCairo] Unreviewed build fix.
+
+ * WebCookieManagerCurl.cpp: Remove unused 'using WebCore'
+ declaration that prevented the build from completing.
+
+2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r127876.
+ http://trac.webkit.org/changeset/127876
+ https://bugs.webkit.org/show_bug.cgi?id=96600
+
+ mouse click doesn't work for spin button if spin button in
+ iframe (Requested by yosin on #webkit).
+
+ * WebActionPropertyBag.cpp:
+ (WebActionPropertyBag::Read):
+ * WebView.cpp:
+ (WebView::handleContextMenuEvent):
+ (WebView::elementAtPoint):
+
2012-09-10 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=96158
diff --git a/Source/WebKit/win/WebActionPropertyBag.cpp b/Source/WebKit/win/WebActionPropertyBag.cpp
index d2905091f..fca83be0d 100644
--- a/Source/WebKit/win/WebActionPropertyBag.cpp
+++ b/Source/WebKit/win/WebActionPropertyBag.cpp
@@ -121,7 +121,7 @@ HRESULT STDMETHODCALLTYPE WebActionPropertyBag::Read(LPCOLESTR pszPropName, VARI
if (isEqual(pszPropName, WebActionElementKey)) {
if (const MouseEvent* mouseEvent = findMouseEvent(m_action.event())) {
V_VT(pVar) = VT_UNKNOWN;
- V_UNKNOWN(pVar) = WebElementPropertyBag::createInstance(m_frame->eventHandler()->hitTestResultAtPoint(mouseEvent->absoluteLocation()));
+ V_UNKNOWN(pVar) = WebElementPropertyBag::createInstance(m_frame->eventHandler()->hitTestResultAtPoint(mouseEvent->absoluteLocation(), false));
return S_OK;
}
}
diff --git a/Source/WebKit/win/WebCookieManagerCurl.cpp b/Source/WebKit/win/WebCookieManagerCurl.cpp
index e60d8cf09..bc99803e0 100644
--- a/Source/WebKit/win/WebCookieManagerCurl.cpp
+++ b/Source/WebKit/win/WebCookieManagerCurl.cpp
@@ -29,8 +29,6 @@
#include "NotImplemented.h"
-using namespace WebCore;
-
// IWebCookieManager -------------------------------------------------------
HRESULT STDMETHODCALLTYPE WebCookieManager::cookieStorage(
diff --git a/Source/WebKit/win/WebView.cpp b/Source/WebKit/win/WebView.cpp
index 9ea9332ec..3f38060cc 100644
--- a/Source/WebKit/win/WebView.cpp
+++ b/Source/WebKit/win/WebView.cpp
@@ -1322,7 +1322,7 @@ bool WebView::handleContextMenuEvent(WPARAM wParam, LPARAM lParam)
m_page->contextMenuController()->clearContextMenu();
IntPoint documentPoint(m_page->mainFrame()->view()->windowToContents(coords));
- HitTestResult result = m_page->mainFrame()->eventHandler()->hitTestResultAtPoint(documentPoint);
+ HitTestResult result = m_page->mainFrame()->eventHandler()->hitTestResultAtPoint(documentPoint, false);
Frame* targetFrame = result.innerNonSharedNode() ? result.innerNonSharedNode()->document()->frame() : m_page->focusController()->focusedOrMainFrame();
targetFrame->view()->setCursor(pointerCursor());
@@ -3597,7 +3597,7 @@ HRESULT STDMETHODCALLTYPE WebView::elementAtPoint(
IntPoint webCorePoint = IntPoint(point->x, point->y);
HitTestResult result = HitTestResult(webCorePoint);
if (frame->contentRenderer())
- result = frame->eventHandler()->hitTestResultAtPoint(webCorePoint);
+ result = frame->eventHandler()->hitTestResultAtPoint(webCorePoint, false);
*elementDictionary = WebElementPropertyBag::createInstance(result);
return S_OK;
}
diff --git a/Source/WebKit/wx/ChangeLog b/Source/WebKit/wx/ChangeLog
index 4f3bdab15..f3e82445c 100644
--- a/Source/WebKit/wx/ChangeLog
+++ b/Source/WebKit/wx/ChangeLog
@@ -1,3 +1,15 @@
+2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r127876.
+ http://trac.webkit.org/changeset/127876
+ https://bugs.webkit.org/show_bug.cgi?id=96600
+
+ mouse click doesn't work for spin button if spin button in
+ iframe (Requested by yosin on #webkit).
+
+ * WebFrame.cpp:
+ (WebKit::WebFrame::HitTest):
+
2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com>
Simplify hitTestResultAtPoint and nodesFromRect APIs
diff --git a/Source/WebKit/wx/WebFrame.cpp b/Source/WebKit/wx/WebFrame.cpp
index 470165db4..b374113c0 100644
--- a/Source/WebKit/wx/WebFrame.cpp
+++ b/Source/WebKit/wx/WebFrame.cpp
@@ -689,7 +689,7 @@ WebViewDOMElementInfo WebFrame::HitTest(const wxPoint& pos) const
WebViewDOMElementInfo domInfo;
if (m_impl->frame->view()) {
- WebCore::HitTestResult result = m_impl->frame->eventHandler()->hitTestResultAtPoint(m_impl->frame->view()->windowToContents(pos));
+ WebCore::HitTestResult result = m_impl->frame->eventHandler()->hitTestResultAtPoint(m_impl->frame->view()->windowToContents(pos), false);
if (result.innerNode()) {
domInfo.SetLink(result.absoluteLinkURL().string());
domInfo.SetText(result.textContent());