diff options
Diffstat (limited to 'Source/WebKit')
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 <iostream> 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 <iostream.h> 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) <string> 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 — 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> - *   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); - *   } + * 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 + * \\" => 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()); |
