JavaScriptCore:
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12174
improve Unicode use (less WTF::Unicode:: prefix, centralized character names)
* wtf/unicode/icu/UnicodeIcu.h: Change parameter and return types
to UChar32 and UChar. Removed unneeded type casts and added some
const to functions that lacked it. Removed WTF::Unicode::memcmp.
(WTF::Unicode::umemcasecmp): Renamed from strcasecmp since this
doesn't work on 0-terminated strings as the str functions do.
* wtf/unicode/qt4/UnicodeQt4.h: Ditto.
- got rid of namespace prefixes from most uses of WTF::Unicode
* kjs/function.cpp:
(KJS::isStrWhiteSpace):
(KJS::escapeStringForPrettyPrinting):
* kjs/lexer.cpp:
(KJS::Lexer::isWhiteSpace):
(KJS::Lexer::isIdentStart):
(KJS::Lexer::isIdentPart):
* kjs/string_object.cpp:
(KJS::StringProtoFunc::callAsFunction):
WebCore:
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12174
improve Unicode use (less WTF::Unicode:: prefix, centralized character names)
- got rid of namespace prefixes from most uses of WTF::Unicode
- updated for removal of WTF::Unicode::memcmp
- updated for renaming of WTF::Unicode::strcasecmp to umemcasecmp.
- unified constants for special Unicode characters in a new
CharacterNames.h header
* WebCore.xcodeproj/project.pbxproj:
* css/cssparser.cpp:
(WebCore::ParseString::lower):
* dom/Document.cpp:
(WebCore::isValidNameStart):
(WebCore::isValidNamePart):
* dom/Position.cpp:
(WebCore::Position::leadingWhitespacePosition):
(WebCore::Position::trailingWhitespacePosition):
* editing/CompositeEditCommand.cpp:
(WebCore::isWhitespace):
* editing/HTMLInterchange.cpp:
* editing/TextIterator.cpp:
(WebCore::CircularSearchBuffer::CircularSearchBuffer):
(WebCore::CircularSearchBuffer::append):
* editing/htmlediting.cpp:
(WebCore::stringWithRebalancedWhitespace):
(WebCore::nonBreakingSpaceString):
* editing/htmlediting.h:
* html/HTMLFontElement.cpp:
(WebCore::parseFontSizeNumber):
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleError):
* html/HTMLSelectElement.cpp:
(WebCore::stripLeadingWhiteSpace):
* platform/Font.cpp:
(WebCore::WidthIterator::advance):
(WebCore::WidthIterator::normalizeVoicingMarks):
* platform/GlyphMap.cpp:
(WebCore::GlyphMap::locatePage):
* platform/MimeTypeRegistry.h:
* platform/StringHash.h:
* platform/StringImpl.cpp:
(WebCore::isSpace):
(WebCore::StringImpl::append):
(WebCore::StringImpl::insert):
(WebCore::StringImpl::truncate):
(WebCore::StringImpl::remove):
(WebCore::parseLength):
(WebCore::StringImpl::isLower):
(WebCore::StringImpl::lower):
(WebCore::StringImpl::upper):
(WebCore::StringImpl::secure):
(WebCore::StringImpl::foldCase):
(WebCore::StringImpl::capitalize):t
(WebCore::StringImpl::toInt):
(WebCore::equalIgnoringCase):
(WebCore::StringImpl::find):
* platform/TextBoundaries.h:
* platform/TextCodec.h:
* platform/TextCodecLatin1.cpp:
* platform/TextEncoding.h:
* platform/TextEncodingRegistry.h:
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeSelection):
* platform/mac/TextCodecMac.cpp:
(WebCore::TextCodecMac::decode):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
* rendering/RenderListMarker.cpp:
(WebCore::listMarkerText):
(WebCore::RenderListMarker::paint):
* rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache):
(WebCore::isSpaceAccordingToStyle):
(WebCore::RenderText::setInternalString):
* rendering/RenderTreeAsText.cpp:
(WebCore::quoteAndEscapeNonPrintables):
(WebCore::operator<<):
* rendering/bidi.cpp:
(WebCore::BidiState::BidiState):
(WebCore::BidiContext::BidiContext):
(WebCore::bidiNext):
(WebCore::bidiFirst):
(WebCore::BidiIterator::direction):
(WebCore::appendRun):
(WebCore::embed):
(WebCore::RenderBlock::bidiReorderLine):
(WebCore::RenderBlock::layoutInlineChildren):
(WebCore::skipNonBreakingSpace):
(WebCore::RenderBlock::findNextLineBreak):
* rendering/break_lines.cpp:
(WebCore::nextBreakablePosition):
* rendering/break_lines.h:
* xml/XPathParser.cpp:
(WebCore::XPath::charCat):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18712 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/rendering/bidi.cpp b/WebCore/rendering/bidi.cpp
index 8df50a5..7a9edec 100644
--- a/WebCore/rendering/bidi.cpp
+++ b/WebCore/rendering/bidi.cpp
@@ -24,6 +24,7 @@
#include "config.h"
#include "bidi.h"
+#include "CharacterNames.h"
#include "Document.h"
#include "Element.h"
#include "FrameView.h"
@@ -36,6 +37,8 @@
#include <wtf/Vector.h>
using namespace std;
+using namespace WTF;
+using namespace Unicode;
namespace WebCore {
@@ -49,7 +52,7 @@
bool atEnd() const;
UChar current() const;
- WTF::Unicode::Direction direction() const;
+ Direction direction() const;
RenderBlock* block;
RenderObject* obj;
@@ -57,7 +60,7 @@
};
struct BidiState {
- BidiState() : context(0), dir(WTF::Unicode::OtherNeutral), adjustEmbedding(false), reachedEndOfLine(false) {}
+ BidiState() : context(0), dir(OtherNeutral), adjustEmbedding(false), reachedEndOfLine(false) {}
BidiIterator sor;
BidiIterator eor;
@@ -65,7 +68,7 @@
BidiIterator current;
RefPtr<BidiContext> context;
BidiStatus status;
- WTF::Unicode::Direction dir;
+ Direction dir;
bool adjustEmbedding;
BidiIterator endOfLine;
bool reachedEndOfLine;
@@ -105,7 +108,7 @@
static bool emptyRun = true;
static int numSpaces;
-static void embed(WTF::Unicode::Direction, BidiState&);
+static void embed(Direction, BidiState&);
static void appendRun(BidiState&);
static int getBPMWidth(int childValue, Length cssUnit)
@@ -200,7 +203,7 @@
Each line of text caches the embedding level at the start of the line for faster
relayouting
*/
-BidiContext::BidiContext(unsigned char l, WTF::Unicode::Direction e, BidiContext *p, bool o)
+BidiContext::BidiContext(unsigned char l, Direction e, BidiContext *p, bool o)
: level(l), override(o), m_dir(e)
{
parent = p;
@@ -278,9 +281,9 @@
EUnicodeBidi ub = next->style()->unicodeBidi();
if (ub != UBNormal) {
TextDirection dir = next->style()->direction();
- WTF::Unicode::Direction d = (ub == Embed
- ? (dir == RTL ? WTF::Unicode::RightToLeftEmbedding : WTF::Unicode::LeftToRightEmbedding)
- : (dir == RTL ? WTF::Unicode::RightToLeftOverride : WTF::Unicode::LeftToRightOverride));
+ Direction d = (ub == Embed
+ ? (dir == RTL ? RightToLeftEmbedding : LeftToRightEmbedding)
+ : (dir == RTL ? RightToLeftOverride : LeftToRightOverride));
embed(d, bidi);
}
}
@@ -296,7 +299,7 @@
while (current && current != block) {
if (bidi.adjustEmbedding && current->isInlineFlow() && current->style()->unicodeBidi() != UBNormal)
- embed(WTF::Unicode::PopDirectionalFormat, bidi);
+ embed(PopDirectionalFormat, bidi);
next = current->nextSibling();
if (next) {
@@ -304,9 +307,9 @@
EUnicodeBidi ub = next->style()->unicodeBidi();
if (ub != UBNormal) {
TextDirection dir = next->style()->direction();
- WTF::Unicode::Direction d = (ub == Embed
- ? (dir == RTL ? WTF::Unicode::RightToLeftEmbedding: WTF::Unicode::LeftToRightEmbedding)
- : (dir == RTL ? WTF::Unicode::RightToLeftOverride : WTF::Unicode::LeftToRightOverride));
+ Direction d = (ub == Embed
+ ? (dir == RTL ? RightToLeftEmbedding: LeftToRightEmbedding)
+ : (dir == RTL ? RightToLeftOverride : LeftToRightOverride));
embed(d, bidi);
}
}
@@ -346,9 +349,9 @@
EUnicodeBidi ub = o->style()->unicodeBidi();
if (ub != UBNormal) {
TextDirection dir = o->style()->direction();
- WTF::Unicode::Direction d = (ub == Embed
- ? (dir == RTL ? WTF::Unicode::RightToLeftEmbedding : WTF::Unicode::LeftToRightEmbedding)
- : (dir == RTL ? WTF::Unicode::RightToLeftOverride : WTF::Unicode::LeftToRightOverride));
+ Direction d = (ub == Embed
+ ? (dir == RTL ? RightToLeftEmbedding : LeftToRightEmbedding)
+ : (dir == RTL ? RightToLeftOverride : LeftToRightOverride));
embed(d, bidi);
}
}
@@ -396,18 +399,18 @@
return text->text()[pos];
}
-ALWAYS_INLINE WTF::Unicode::Direction BidiIterator::direction() const
+ALWAYS_INLINE Direction BidiIterator::direction() const
{
if (!obj)
- return WTF::Unicode::OtherNeutral;
+ return OtherNeutral;
if (obj->isListMarker())
- return obj->style()->direction() == LTR ? WTF::Unicode::LeftToRight : WTF::Unicode::RightToLeft;
+ return obj->style()->direction() == LTR ? LeftToRight : RightToLeft;
if (!obj->isText())
- return WTF::Unicode::OtherNeutral;
+ return OtherNeutral;
RenderText* renderTxt = static_cast<RenderText*>(obj);
if (pos >= renderTxt->stringLength())
- return WTF::Unicode::OtherNeutral;
- return WTF::Unicode::direction(renderTxt->text()[pos]);
+ return OtherNeutral;
+ return Unicode::direction(renderTxt->text()[pos]);
}
// -------------------------------------------------------------------------------------------------
@@ -620,44 +623,44 @@
bidi.eor.increment(bidi);
bidi.sor = bidi.eor;
- bidi.dir = WTF::Unicode::OtherNeutral;
- bidi.status.eor = WTF::Unicode::OtherNeutral;
+ bidi.dir = OtherNeutral;
+ bidi.status.eor = OtherNeutral;
bidi.adjustEmbedding = b;
}
-static void embed(WTF::Unicode::Direction d, BidiState& bidi)
+static void embed(Direction d, BidiState& bidi)
{
bool b = bidi.adjustEmbedding;
bidi.adjustEmbedding = false;
- if (d == WTF::Unicode::PopDirectionalFormat) {
+ if (d == PopDirectionalFormat) {
BidiContext *c = bidi.context->parent;
if (c) {
if (!emptyRun && bidi.eor != bidi.last) {
- assert(bidi.status.eor != WTF::Unicode::OtherNeutral);
+ assert(bidi.status.eor != OtherNeutral);
// bidi.sor ... bidi.eor ... bidi.last eor; need to append the bidi.sor-bidi.eor run or extend it through bidi.last
- assert(bidi.status.last == WTF::Unicode::EuropeanNumberSeparator
- || bidi.status.last == WTF::Unicode::EuropeanNumberTerminator
- || bidi.status.last == WTF::Unicode::CommonNumberSeparator
- || bidi.status.last == WTF::Unicode::BoundaryNeutral
- || bidi.status.last == WTF::Unicode::BlockSeparator
- || bidi.status.last == WTF::Unicode::SegmentSeparator
- || bidi.status.last == WTF::Unicode::WhiteSpaceNeutral
- || bidi.status.last == WTF::Unicode::OtherNeutral);
- if (bidi.dir == WTF::Unicode::OtherNeutral)
+ assert(bidi.status.last == EuropeanNumberSeparator
+ || bidi.status.last == EuropeanNumberTerminator
+ || bidi.status.last == CommonNumberSeparator
+ || bidi.status.last == BoundaryNeutral
+ || bidi.status.last == BlockSeparator
+ || bidi.status.last == SegmentSeparator
+ || bidi.status.last == WhiteSpaceNeutral
+ || bidi.status.last == OtherNeutral);
+ if (bidi.dir == OtherNeutral)
bidi.dir = bidi.context->dir();
- if (bidi.context->dir() == WTF::Unicode::LeftToRight) {
+ if (bidi.context->dir() == LeftToRight) {
// bidi.sor ... bidi.eor ... bidi.last L
- if (bidi.status.eor == WTF::Unicode::EuropeanNumber) {
- if (bidi.status.lastStrong != WTF::Unicode::LeftToRight) {
- bidi.dir = WTF::Unicode::EuropeanNumber;
+ if (bidi.status.eor == EuropeanNumber) {
+ if (bidi.status.lastStrong != LeftToRight) {
+ bidi.dir = EuropeanNumber;
appendRun(bidi);
}
- } else if (bidi.status.eor == WTF::Unicode::ArabicNumber) {
- bidi.dir = WTF::Unicode::ArabicNumber;
+ } else if (bidi.status.eor == ArabicNumber) {
+ bidi.dir = ArabicNumber;
appendRun(bidi);
- } else if (bidi.status.eor != WTF::Unicode::LeftToRight)
+ } else if (bidi.status.eor != LeftToRight)
appendRun(bidi);
- } else if (bidi.status.eor != WTF::Unicode::RightToLeft && bidi.status.eor != WTF::Unicode::RightToLeftArabic)
+ } else if (bidi.status.eor != RightToLeft && bidi.status.eor != RightToLeftArabic)
appendRun(bidi);
bidi.eor = bidi.last;
}
@@ -671,15 +674,15 @@
bidi.eor.obj = 0;
}
} else {
- WTF::Unicode::Direction runDir;
- if (d == WTF::Unicode::RightToLeftEmbedding || d == WTF::Unicode::RightToLeftOverride)
- runDir = WTF::Unicode::RightToLeft;
+ Direction runDir;
+ if (d == RightToLeftEmbedding || d == RightToLeftOverride)
+ runDir = RightToLeft;
else
- runDir = WTF::Unicode::LeftToRight;
- bool override = d == WTF::Unicode::LeftToRightOverride || d == WTF::Unicode::RightToLeftOverride;
+ runDir = LeftToRight;
+ bool override = d == LeftToRightOverride || d == RightToLeftOverride;
unsigned char level = bidi.context->level;
- if (runDir == WTF::Unicode::RightToLeft) {
+ if (runDir == RightToLeft) {
if (level%2) // we have an odd level
level += 2;
else
@@ -693,47 +696,47 @@
if (level < 61) {
if (!emptyRun && bidi.eor != bidi.last) {
- assert(bidi.status.eor != WTF::Unicode::OtherNeutral);
+ assert(bidi.status.eor != OtherNeutral);
// bidi.sor ... bidi.eor ... bidi.last eor; need to append the bidi.sor-bidi.eor run or extend it through bidi.last
- assert(bidi.status.last == WTF::Unicode::EuropeanNumberSeparator
- || bidi.status.last == WTF::Unicode::EuropeanNumberTerminator
- || bidi.status.last == WTF::Unicode::CommonNumberSeparator
- || bidi.status.last == WTF::Unicode::BoundaryNeutral
- || bidi.status.last == WTF::Unicode::BlockSeparator
- || bidi.status.last == WTF::Unicode::SegmentSeparator
- || bidi.status.last == WTF::Unicode::WhiteSpaceNeutral
- || bidi.status.last == WTF::Unicode::OtherNeutral);
- if (bidi.dir == WTF::Unicode::OtherNeutral)
+ assert(bidi.status.last == EuropeanNumberSeparator
+ || bidi.status.last == EuropeanNumberTerminator
+ || bidi.status.last == CommonNumberSeparator
+ || bidi.status.last == BoundaryNeutral
+ || bidi.status.last == BlockSeparator
+ || bidi.status.last == SegmentSeparator
+ || bidi.status.last == WhiteSpaceNeutral
+ || bidi.status.last == OtherNeutral);
+ if (bidi.dir == OtherNeutral)
bidi.dir = runDir;
- if (runDir == WTF::Unicode::LeftToRight) {
+ if (runDir == LeftToRight) {
// bidi.sor ... bidi.eor ... bidi.last L
- if (bidi.status.eor == WTF::Unicode::EuropeanNumber) {
- if (bidi.status.lastStrong != WTF::Unicode::LeftToRight) {
- bidi.dir = WTF::Unicode::EuropeanNumber;
+ if (bidi.status.eor == EuropeanNumber) {
+ if (bidi.status.lastStrong != LeftToRight) {
+ bidi.dir = EuropeanNumber;
appendRun(bidi);
- if (bidi.context->dir() != WTF::Unicode::LeftToRight)
- bidi.dir = WTF::Unicode::RightToLeft;
+ if (bidi.context->dir() != LeftToRight)
+ bidi.dir = RightToLeft;
}
- } else if (bidi.status.eor == WTF::Unicode::ArabicNumber) {
- bidi.dir = WTF::Unicode::ArabicNumber;
+ } else if (bidi.status.eor == ArabicNumber) {
+ bidi.dir = ArabicNumber;
appendRun(bidi);
- if (bidi.context->dir() != WTF::Unicode::LeftToRight) {
+ if (bidi.context->dir() != LeftToRight) {
bidi.eor = bidi.last;
- bidi.dir = WTF::Unicode::RightToLeft;
+ bidi.dir = RightToLeft;
appendRun(bidi);
}
- } else if (bidi.status.eor != WTF::Unicode::LeftToRight) {
- if (bidi.context->dir() == WTF::Unicode::LeftToRight || bidi.status.lastStrong == WTF::Unicode::LeftToRight)
+ } else if (bidi.status.eor != LeftToRight) {
+ if (bidi.context->dir() == LeftToRight || bidi.status.lastStrong == LeftToRight)
appendRun(bidi);
else
- bidi.dir = WTF::Unicode::RightToLeft;
+ bidi.dir = RightToLeft;
}
- } else if (bidi.status.eor != WTF::Unicode::RightToLeft && bidi.status.eor != WTF::Unicode::RightToLeftArabic) {
+ } else if (bidi.status.eor != RightToLeft && bidi.status.eor != RightToLeftArabic) {
// bidi.sor ... bidi.eor ... bidi.last R; bidi.eor=L/EN/AN; EN,AN behave like R (rule N1)
- if (bidi.context->dir() == WTF::Unicode::RightToLeft || bidi.status.lastStrong == WTF::Unicode::RightToLeft || bidi.status.lastStrong == WTF::Unicode::RightToLeftArabic)
+ if (bidi.context->dir() == RightToLeft || bidi.status.lastStrong == RightToLeft || bidi.status.lastStrong == RightToLeftArabic)
appendRun(bidi);
else
- bidi.dir = WTF::Unicode::LeftToRight;
+ bidi.dir = LeftToRight;
}
bidi.eor = bidi.last;
}
@@ -1013,7 +1016,7 @@
sLastBidiRun = 0;
sBidiRunCount = 0;
- assert(bidi.dir == WTF::Unicode::OtherNeutral);
+ assert(bidi.dir == OtherNeutral);
emptyRun = true;
@@ -1027,7 +1030,7 @@
BidiState stateAtEnd;
while (true) {
- WTF::Unicode::Direction dirCurrent;
+ Direction dirCurrent;
if (pastEnd && (previousLineBrokeCleanly || bidi.current.atEnd())) {
BidiContext *c = bidi.context.get();
while (c->parent)
@@ -1044,75 +1047,75 @@
} else {
dirCurrent = bidi.current.direction();
if (bidi.context->override
- && dirCurrent != WTF::Unicode::RightToLeftEmbedding
- && dirCurrent != WTF::Unicode::LeftToRightEmbedding
- && dirCurrent != WTF::Unicode::RightToLeftOverride
- && dirCurrent != WTF::Unicode::LeftToRightOverride
- && dirCurrent != WTF::Unicode::PopDirectionalFormat)
+ && dirCurrent != RightToLeftEmbedding
+ && dirCurrent != LeftToRightEmbedding
+ && dirCurrent != RightToLeftOverride
+ && dirCurrent != LeftToRightOverride
+ && dirCurrent != PopDirectionalFormat)
dirCurrent = bidi.context->dir();
- else if (dirCurrent == WTF::Unicode::NonSpacingMark)
+ else if (dirCurrent == NonSpacingMark)
dirCurrent = bidi.status.last;
}
- assert(bidi.status.eor != WTF::Unicode::OtherNeutral);
+ assert(bidi.status.eor != OtherNeutral);
switch (dirCurrent) {
// embedding and overrides (X1-X9 in the Bidi specs)
- case WTF::Unicode::RightToLeftEmbedding:
- case WTF::Unicode::LeftToRightEmbedding:
- case WTF::Unicode::RightToLeftOverride:
- case WTF::Unicode::LeftToRightOverride:
- case WTF::Unicode::PopDirectionalFormat:
+ case RightToLeftEmbedding:
+ case LeftToRightEmbedding:
+ case RightToLeftOverride:
+ case LeftToRightOverride:
+ case PopDirectionalFormat:
embed(dirCurrent, bidi);
break;
// strong types
- case WTF::Unicode::LeftToRight:
+ case LeftToRight:
switch(bidi.status.last) {
- case WTF::Unicode::RightToLeft:
- case WTF::Unicode::RightToLeftArabic:
- case WTF::Unicode::EuropeanNumber:
- case WTF::Unicode::ArabicNumber:
- if (bidi.status.last != WTF::Unicode::EuropeanNumber || bidi.status.lastStrong != WTF::Unicode::LeftToRight)
+ case RightToLeft:
+ case RightToLeftArabic:
+ case EuropeanNumber:
+ case ArabicNumber:
+ if (bidi.status.last != EuropeanNumber || bidi.status.lastStrong != LeftToRight)
appendRun(bidi);
break;
- case WTF::Unicode::LeftToRight:
+ case LeftToRight:
break;
- case WTF::Unicode::EuropeanNumberSeparator:
- case WTF::Unicode::EuropeanNumberTerminator:
- case WTF::Unicode::CommonNumberSeparator:
- case WTF::Unicode::BoundaryNeutral:
- case WTF::Unicode::BlockSeparator:
- case WTF::Unicode::SegmentSeparator:
- case WTF::Unicode::WhiteSpaceNeutral:
- case WTF::Unicode::OtherNeutral:
- if (bidi.status.eor == WTF::Unicode::EuropeanNumber) {
- if (bidi.status.lastStrong != WTF::Unicode::LeftToRight) {
+ case EuropeanNumberSeparator:
+ case EuropeanNumberTerminator:
+ case CommonNumberSeparator:
+ case BoundaryNeutral:
+ case BlockSeparator:
+ case SegmentSeparator:
+ case WhiteSpaceNeutral:
+ case OtherNeutral:
+ if (bidi.status.eor == EuropeanNumber) {
+ if (bidi.status.lastStrong != LeftToRight) {
// the numbers need to be on a higher embedding level, so let's close that run
- bidi.dir = WTF::Unicode::EuropeanNumber;
+ bidi.dir = EuropeanNumber;
appendRun(bidi);
- if (bidi.context->dir() != WTF::Unicode::LeftToRight) {
+ if (bidi.context->dir() != LeftToRight) {
// the neutrals take the embedding direction, which is R
bidi.eor = bidi.last;
- bidi.dir = WTF::Unicode::RightToLeft;
+ bidi.dir = RightToLeft;
appendRun(bidi);
}
}
- } else if (bidi.status.eor == WTF::Unicode::ArabicNumber) {
+ } else if (bidi.status.eor == ArabicNumber) {
// Arabic numbers are always on a higher embedding level, so let's close that run
- bidi.dir = WTF::Unicode::ArabicNumber;
+ bidi.dir = ArabicNumber;
appendRun(bidi);
- if (bidi.context->dir() != WTF::Unicode::LeftToRight) {
+ if (bidi.context->dir() != LeftToRight) {
// the neutrals take the embedding direction, which is R
bidi.eor = bidi.last;
- bidi.dir = WTF::Unicode::RightToLeft;
+ bidi.dir = RightToLeft;
appendRun(bidi);
}
- } else if(bidi.status.eor != WTF::Unicode::LeftToRight) {
+ } else if(bidi.status.eor != LeftToRight) {
//last stuff takes embedding dir
- if (bidi.context->dir() != WTF::Unicode::LeftToRight && bidi.status.lastStrong != WTF::Unicode::LeftToRight) {
+ if (bidi.context->dir() != LeftToRight && bidi.status.lastStrong != LeftToRight) {
bidi.eor = bidi.last;
- bidi.dir = WTF::Unicode::RightToLeft;
+ bidi.dir = RightToLeft;
}
appendRun(bidi);
}
@@ -1120,34 +1123,34 @@
break;
}
bidi.eor = bidi.current;
- bidi.status.eor = WTF::Unicode::LeftToRight;
- bidi.status.lastStrong = WTF::Unicode::LeftToRight;
- bidi.dir = WTF::Unicode::LeftToRight;
+ bidi.status.eor = LeftToRight;
+ bidi.status.lastStrong = LeftToRight;
+ bidi.dir = LeftToRight;
break;
- case WTF::Unicode::RightToLeftArabic:
- case WTF::Unicode::RightToLeft:
+ case RightToLeftArabic:
+ case RightToLeft:
switch (bidi.status.last) {
- case WTF::Unicode::LeftToRight:
- case WTF::Unicode::EuropeanNumber:
- case WTF::Unicode::ArabicNumber:
+ case LeftToRight:
+ case EuropeanNumber:
+ case ArabicNumber:
appendRun(bidi);
- case WTF::Unicode::RightToLeft:
- case WTF::Unicode::RightToLeftArabic:
+ case RightToLeft:
+ case RightToLeftArabic:
break;
- case WTF::Unicode::EuropeanNumberSeparator:
- case WTF::Unicode::EuropeanNumberTerminator:
- case WTF::Unicode::CommonNumberSeparator:
- case WTF::Unicode::BoundaryNeutral:
- case WTF::Unicode::BlockSeparator:
- case WTF::Unicode::SegmentSeparator:
- case WTF::Unicode::WhiteSpaceNeutral:
- case WTF::Unicode::OtherNeutral:
- if (bidi.status.eor != WTF::Unicode::RightToLeft && bidi.status.eor != WTF::Unicode::RightToLeftArabic) {
+ case EuropeanNumberSeparator:
+ case EuropeanNumberTerminator:
+ case CommonNumberSeparator:
+ case BoundaryNeutral:
+ case BlockSeparator:
+ case SegmentSeparator:
+ case WhiteSpaceNeutral:
+ case OtherNeutral:
+ if (bidi.status.eor != RightToLeft && bidi.status.eor != RightToLeftArabic) {
//last stuff takes embedding dir
- if (bidi.context->dir() != WTF::Unicode::RightToLeft && bidi.status.lastStrong != WTF::Unicode::RightToLeft
- && bidi.status.lastStrong != WTF::Unicode::RightToLeftArabic) {
+ if (bidi.context->dir() != RightToLeft && bidi.status.lastStrong != RightToLeft
+ && bidi.status.lastStrong != RightToLeftArabic) {
bidi.eor = bidi.last;
- bidi.dir = WTF::Unicode::LeftToRight;
+ bidi.dir = LeftToRight;
}
appendRun(bidi);
}
@@ -1155,99 +1158,99 @@
break;
}
bidi.eor = bidi.current;
- bidi.status.eor = WTF::Unicode::RightToLeft;
+ bidi.status.eor = RightToLeft;
bidi.status.lastStrong = dirCurrent;
- bidi.dir = WTF::Unicode::RightToLeft;
+ bidi.dir = RightToLeft;
break;
// weak types:
- case WTF::Unicode::EuropeanNumber:
- if (bidi.status.lastStrong != WTF::Unicode::RightToLeftArabic) {
+ case EuropeanNumber:
+ if (bidi.status.lastStrong != RightToLeftArabic) {
// if last strong was AL change EN to AN
switch (bidi.status.last) {
- case WTF::Unicode::EuropeanNumber:
- case WTF::Unicode::LeftToRight:
+ case EuropeanNumber:
+ case LeftToRight:
break;
- case WTF::Unicode::RightToLeft:
- case WTF::Unicode::RightToLeftArabic:
- case WTF::Unicode::ArabicNumber:
+ case RightToLeft:
+ case RightToLeftArabic:
+ case ArabicNumber:
bidi.eor = bidi.last;
appendRun(bidi);
- bidi.dir = WTF::Unicode::EuropeanNumber;
+ bidi.dir = EuropeanNumber;
break;
- case WTF::Unicode::EuropeanNumberSeparator:
- case WTF::Unicode::CommonNumberSeparator:
- if (bidi.status.eor == WTF::Unicode::EuropeanNumber)
+ case EuropeanNumberSeparator:
+ case CommonNumberSeparator:
+ if (bidi.status.eor == EuropeanNumber)
break;
- case WTF::Unicode::EuropeanNumberTerminator:
- case WTF::Unicode::BoundaryNeutral:
- case WTF::Unicode::BlockSeparator:
- case WTF::Unicode::SegmentSeparator:
- case WTF::Unicode::WhiteSpaceNeutral:
- case WTF::Unicode::OtherNeutral:
- if (bidi.status.eor == WTF::Unicode::RightToLeft) {
+ case EuropeanNumberTerminator:
+ case BoundaryNeutral:
+ case BlockSeparator:
+ case SegmentSeparator:
+ case WhiteSpaceNeutral:
+ case OtherNeutral:
+ if (bidi.status.eor == RightToLeft) {
// neutrals go to R
- bidi.eor = bidi.status.last == WTF::Unicode::EuropeanNumberTerminator ? bidi.lastBeforeET : bidi.last;
+ bidi.eor = bidi.status.last == EuropeanNumberTerminator ? bidi.lastBeforeET : bidi.last;
appendRun(bidi);
- bidi.dir = WTF::Unicode::EuropeanNumber;
- } else if (bidi.status.eor != WTF::Unicode::LeftToRight &&
- (bidi.status.eor != WTF::Unicode::EuropeanNumber || bidi.status.lastStrong != WTF::Unicode::LeftToRight) &&
- bidi.dir != WTF::Unicode::LeftToRight) {
+ bidi.dir = EuropeanNumber;
+ } else if (bidi.status.eor != LeftToRight &&
+ (bidi.status.eor != EuropeanNumber || bidi.status.lastStrong != LeftToRight) &&
+ bidi.dir != LeftToRight) {
// numbers on both sides, neutrals get right to left direction
appendRun(bidi);
- bidi.eor = bidi.status.last == WTF::Unicode::EuropeanNumberTerminator ? bidi.lastBeforeET : bidi.last;
- bidi.dir = WTF::Unicode::RightToLeft;
+ bidi.eor = bidi.status.last == EuropeanNumberTerminator ? bidi.lastBeforeET : bidi.last;
+ bidi.dir = RightToLeft;
appendRun(bidi);
- bidi.dir = WTF::Unicode::EuropeanNumber;
+ bidi.dir = EuropeanNumber;
}
default:
break;
}
bidi.eor = bidi.current;
- bidi.status.eor = WTF::Unicode::EuropeanNumber;
- if (bidi.dir == WTF::Unicode::OtherNeutral)
- bidi.dir = WTF::Unicode::LeftToRight;
+ bidi.status.eor = EuropeanNumber;
+ if (bidi.dir == OtherNeutral)
+ bidi.dir = LeftToRight;
break;
}
- case WTF::Unicode::ArabicNumber:
- dirCurrent = WTF::Unicode::ArabicNumber;
+ case ArabicNumber:
+ dirCurrent = ArabicNumber;
switch (bidi.status.last) {
- case WTF::Unicode::LeftToRight:
- if (bidi.context->dir() == WTF::Unicode::LeftToRight)
+ case LeftToRight:
+ if (bidi.context->dir() == LeftToRight)
appendRun(bidi);
break;
- case WTF::Unicode::ArabicNumber:
+ case ArabicNumber:
break;
- case WTF::Unicode::RightToLeft:
- case WTF::Unicode::RightToLeftArabic:
- case WTF::Unicode::EuropeanNumber:
+ case RightToLeft:
+ case RightToLeftArabic:
+ case EuropeanNumber:
bidi.eor = bidi.last;
appendRun(bidi);
break;
- case WTF::Unicode::CommonNumberSeparator:
- if (bidi.status.eor == WTF::Unicode::ArabicNumber)
+ case CommonNumberSeparator:
+ if (bidi.status.eor == ArabicNumber)
break;
- case WTF::Unicode::EuropeanNumberSeparator:
- case WTF::Unicode::EuropeanNumberTerminator:
- case WTF::Unicode::BoundaryNeutral:
- case WTF::Unicode::BlockSeparator:
- case WTF::Unicode::SegmentSeparator:
- case WTF::Unicode::WhiteSpaceNeutral:
- case WTF::Unicode::OtherNeutral:
- if (bidi.status.eor != WTF::Unicode::RightToLeft && bidi.status.eor != WTF::Unicode::RightToLeftArabic) {
+ case EuropeanNumberSeparator:
+ case EuropeanNumberTerminator:
+ case BoundaryNeutral:
+ case BlockSeparator:
+ case SegmentSeparator:
+ case WhiteSpaceNeutral:
+ case OtherNeutral:
+ if (bidi.status.eor != RightToLeft && bidi.status.eor != RightToLeftArabic) {
// run of L before neutrals, neutrals take embedding dir (N2)
- if (bidi.context->dir() == WTF::Unicode::RightToLeft || bidi.status.lastStrong == WTF::Unicode::RightToLeft
- || bidi.status.lastStrong == WTF::Unicode::RightToLeftArabic) {
+ if (bidi.context->dir() == RightToLeft || bidi.status.lastStrong == RightToLeft
+ || bidi.status.lastStrong == RightToLeftArabic) {
// the embedding direction is R
// close the L run
appendRun(bidi);
// neutrals become an R run
- bidi.dir = WTF::Unicode::RightToLeft;
+ bidi.dir = RightToLeft;
} else {
// the embedding direction is L
// append neutrals to the L run and close it
- bidi.dir = WTF::Unicode::LeftToRight;
+ bidi.dir = LeftToRight;
}
}
bidi.eor = bidi.last;
@@ -1256,37 +1259,37 @@
break;
}
bidi.eor = bidi.current;
- bidi.status.eor = WTF::Unicode::ArabicNumber;
- if (bidi.dir == WTF::Unicode::OtherNeutral)
- bidi.dir = WTF::Unicode::ArabicNumber;
+ bidi.status.eor = ArabicNumber;
+ if (bidi.dir == OtherNeutral)
+ bidi.dir = ArabicNumber;
break;
- case WTF::Unicode::EuropeanNumberSeparator:
- case WTF::Unicode::CommonNumberSeparator:
+ case EuropeanNumberSeparator:
+ case CommonNumberSeparator:
break;
- case WTF::Unicode::EuropeanNumberTerminator:
- if (bidi.status.last == WTF::Unicode::EuropeanNumber) {
- dirCurrent = WTF::Unicode::EuropeanNumber;
+ case EuropeanNumberTerminator:
+ if (bidi.status.last == EuropeanNumber) {
+ dirCurrent = EuropeanNumber;
bidi.eor = bidi.current;
bidi.status.eor = dirCurrent;
- } else if (bidi.status.last != WTF::Unicode::EuropeanNumberTerminator)
+ } else if (bidi.status.last != EuropeanNumberTerminator)
bidi.lastBeforeET = emptyRun ? bidi.eor : bidi.last;
break;
// boundary neutrals should be ignored
- case WTF::Unicode::BoundaryNeutral:
+ case BoundaryNeutral:
if (bidi.eor == bidi.last)
bidi.eor = bidi.current;
break;
// neutrals
- case WTF::Unicode::BlockSeparator:
+ case BlockSeparator:
// ### what do we do with newline and paragraph seperators that come to here?
break;
- case WTF::Unicode::SegmentSeparator:
+ case SegmentSeparator:
// ### implement rule L1
break;
- case WTF::Unicode::WhiteSpaceNeutral:
+ case WhiteSpaceNeutral:
break;
- case WTF::Unicode::OtherNeutral:
+ case OtherNeutral:
break;
default:
break;
@@ -1297,13 +1300,13 @@
if (!bidi.reachedEndOfLine) {
bidi.eor = bidi.endOfLine;
switch (bidi.status.eor) {
- case WTF::Unicode::LeftToRight:
- case WTF::Unicode::RightToLeft:
- case WTF::Unicode::ArabicNumber:
+ case LeftToRight:
+ case RightToLeft:
+ case ArabicNumber:
bidi.dir = bidi.status.eor;
break;
- case WTF::Unicode::EuropeanNumber:
- bidi.dir = bidi.status.lastStrong == WTF::Unicode::LeftToRight ? WTF::Unicode::LeftToRight : WTF::Unicode::EuropeanNumber;
+ case EuropeanNumber:
+ bidi.dir = bidi.status.lastStrong == LeftToRight ? LeftToRight : EuropeanNumber;
break;
default:
assert(false);
@@ -1311,44 +1314,44 @@
appendRun(bidi);
}
bidi = stateAtEnd;
- bidi.dir = WTF::Unicode::OtherNeutral;
+ bidi.dir = OtherNeutral;
break;
}
}
// set status.last as needed.
switch (dirCurrent) {
- case WTF::Unicode::EuropeanNumberTerminator:
- if (bidi.status.last != WTF::Unicode::EuropeanNumber)
- bidi.status.last = WTF::Unicode::EuropeanNumberTerminator;
+ case EuropeanNumberTerminator:
+ if (bidi.status.last != EuropeanNumber)
+ bidi.status.last = EuropeanNumberTerminator;
break;
- case WTF::Unicode::EuropeanNumberSeparator:
- case WTF::Unicode::CommonNumberSeparator:
- case WTF::Unicode::SegmentSeparator:
- case WTF::Unicode::WhiteSpaceNeutral:
- case WTF::Unicode::OtherNeutral:
+ case EuropeanNumberSeparator:
+ case CommonNumberSeparator:
+ case SegmentSeparator:
+ case WhiteSpaceNeutral:
+ case OtherNeutral:
switch(bidi.status.last) {
- case WTF::Unicode::LeftToRight:
- case WTF::Unicode::RightToLeft:
- case WTF::Unicode::RightToLeftArabic:
- case WTF::Unicode::EuropeanNumber:
- case WTF::Unicode::ArabicNumber:
+ case LeftToRight:
+ case RightToLeft:
+ case RightToLeftArabic:
+ case EuropeanNumber:
+ case ArabicNumber:
bidi.status.last = dirCurrent;
break;
default:
- bidi.status.last = WTF::Unicode::OtherNeutral;
+ bidi.status.last = OtherNeutral;
}
break;
- case WTF::Unicode::NonSpacingMark:
- case WTF::Unicode::BoundaryNeutral:
- case WTF::Unicode::RightToLeftEmbedding:
- case WTF::Unicode::LeftToRightEmbedding:
- case WTF::Unicode::RightToLeftOverride:
- case WTF::Unicode::LeftToRightOverride:
- case WTF::Unicode::PopDirectionalFormat:
+ case NonSpacingMark:
+ case BoundaryNeutral:
+ case RightToLeftEmbedding:
+ case LeftToRightEmbedding:
+ case RightToLeftOverride:
+ case LeftToRightOverride:
+ case PopDirectionalFormat:
// ignore these
break;
- case WTF::Unicode::EuropeanNumber:
+ case EuropeanNumber:
// fall through
default:
bidi.status.last = dirCurrent;
@@ -1356,11 +1359,11 @@
bidi.last = bidi.current;
- if (emptyRun && !(dirCurrent == WTF::Unicode::RightToLeftEmbedding
- || dirCurrent == WTF::Unicode::LeftToRightEmbedding
- || dirCurrent == WTF::Unicode::RightToLeftOverride
- || dirCurrent == WTF::Unicode::LeftToRightOverride
- || dirCurrent == WTF::Unicode::PopDirectionalFormat)) {
+ if (emptyRun && !(dirCurrent == RightToLeftEmbedding
+ || dirCurrent == LeftToRightEmbedding
+ || dirCurrent == RightToLeftOverride
+ || dirCurrent == LeftToRightOverride
+ || dirCurrent == PopDirectionalFormat)) {
bidi.sor = bidi.current;
emptyRun = false;
}
@@ -1370,11 +1373,11 @@
bidi.adjustEmbedding = true;
bidi.current.increment(bidi);
bidi.adjustEmbedding = false;
- if (emptyRun && (dirCurrent == WTF::Unicode::RightToLeftEmbedding
- || dirCurrent == WTF::Unicode::LeftToRightEmbedding
- || dirCurrent == WTF::Unicode::RightToLeftOverride
- || dirCurrent == WTF::Unicode::LeftToRightOverride
- || dirCurrent == WTF::Unicode::PopDirectionalFormat)) {
+ if (emptyRun && (dirCurrent == RightToLeftEmbedding
+ || dirCurrent == LeftToRightEmbedding
+ || dirCurrent == RightToLeftOverride
+ || dirCurrent == LeftToRightOverride
+ || dirCurrent == PopDirectionalFormat)) {
// exclude the embedding char itself from the new run so that ATSUI will never see it
bidi.eor.obj = 0;
bidi.last = bidi.current;
@@ -1557,18 +1560,18 @@
BidiContext *startEmbed;
if (style()->direction() == LTR) {
- startEmbed = new BidiContext( 0, WTF::Unicode::LeftToRight, NULL, style()->unicodeBidi() == Override );
- bidi.status.eor = WTF::Unicode::LeftToRight;
+ startEmbed = new BidiContext(0, LeftToRight, NULL, style()->unicodeBidi() == Override);
+ bidi.status.eor = LeftToRight;
} else {
- startEmbed = new BidiContext( 1, WTF::Unicode::RightToLeft, NULL, style()->unicodeBidi() == Override );
- bidi.status.eor = WTF::Unicode::RightToLeft;
+ startEmbed = new BidiContext(1, RightToLeft, NULL, style()->unicodeBidi() == Override);
+ bidi.status.eor = RightToLeft;
}
bidi.status.lastStrong = startEmbed->dir();
bidi.status.last = startEmbed->dir();
bidi.status.eor = startEmbed->dir();
bidi.context = startEmbed;
- bidi.dir = WTF::Unicode::OtherNeutral;
+ bidi.dir = OtherNeutral;
if (!smidpoints)
smidpoints = new Vector<BidiIterator>();
@@ -1890,11 +1893,9 @@
return false;
}
-static const unsigned short nonBreakingSpace = 0xa0;
-
static inline bool skipNonBreakingSpace(BidiIterator &it)
{
- if (it.obj->style()->nbspMode() != SPACE || it.current() != nonBreakingSpace)
+ if (it.obj->style()->nbspMode() != SPACE || it.current() != noBreakSpace)
return false;
// FIXME: This is bad. It makes nbsp inconsistent with space and won't work correctly
@@ -2201,7 +2202,7 @@
// FIXME: This check looks suspicious. Why does w have to be 0?
bool breakWords = o->style()->wordWrap() == BREAK_WORD && ((allowBreak && w == 0) || o->style()->whiteSpace() == PRE);
- currentCharacterIsWS = currentCharacterIsSpace || (breakNBSP && c == nonBreakingSpace);
+ currentCharacterIsWS = currentCharacterIsSpace || (breakNBSP && c == noBreakSpace);
if (breakWords)
wrapW += t->width(pos, 1, f, w+wrapW);