Reviewed by Adele, except for the first change listed.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Mar 2006 09:03:23 +0000 (09:03 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Mar 2006 09:03:23 +0000 (09:03 +0000)
        - fix recently-introduced bug that GuardMalloc found while I was debugging my other change

        * rendering/render_frames.cpp: (WebCore::RenderPart::~RenderPart):
        Set m_widget to 0 before calling deref so we don't end up trying to do unwanted work.

        - removed 10 more files from KWQ

        * ForwardingHeaders/klocale.h: Removed.

        * khtml/misc/helper.cpp: Removed.
        * khtml/misc/helper.h: Removed.

        * kwq/KWQCollection.h: Removed.
        * kwq/KWQKCookieJar.h: Removed.
        * kwq/KWQKCookieJar.mm: Removed.
        * kwq/KWQKLocale.h: Removed.
        * kwq/KWQKLocale.mm: Removed.
        * kwq/KWQKURL.h: Removed.
        * kwq/KWQKURL.mm: Removed.
        * kwq/KWQTextUtilities.h: Removed.
        * kwq/KWQTextUtilities.mm: Removed.
        * kwq/KWQView.h: Removed.

        * platform/CookieJar.h: Added.
        * platform/Language.h: Added.
        * platform/LocalizedStrings.h: Added.
        * platform/TextBoundaries.h: Added.
        * platform/mac/CookieJar.mm: Added.
        * platform/mac/Language.mm: Added.
        * platform/mac/LocalizedStringsMac.mm: Added.
        * platform/mac/TextBoundaries.mm: Added.
        * platform/mac/WebCoreWidgetHolder.h: Added.

        * WebCore.xcodeproj/project.pbxproj: Updated for removed and added files.
        * WebCore.vcproj/WebCore/WebCore.vcproj: Updated for removed and added files.

        * bridge/mac/WebCoreFrameBridge.mm: Updated includes.
        (-[WebCoreFrameBridge elementForView:]): Changed KWQWidgetHolder to WebCoreWidgetHolder.

        * editing/visible_units.cpp:
        (WebCore::previousWordPositionBoundary):
        (WebCore::nextWordPositionBoundary):
        (WebCore::previousSentencePositionBoundary):
        (WebCore::nextSentencePositionBoundary):
        Call TextBoundaries.h functions instead of helper.h ones.

        * khtml/ecma/kjs_navigator.cpp: (KJS::Navigator::getValueProperty):
        * ksvg2/svg/SVGTestsImpl.cpp: (WebCore::SVGTestsImpl::isValid):
        Changed to call defaultLanguage; cleaned up formatting.

        * khtml/html/HTMLFormElementImpl.cpp: Removed stray comment.

        * khtml/html/html_documentimpl.cpp:
        (WebCore::HTMLDocumentImpl::cookie):
        (WebCore::HTMLDocumentImpl::setCookie):
        Call CookieJar.h functions.

        * css/css_valueimpl.cpp:
        * css/cssparser.cpp:
        * css/cssstyleselector.cpp:
        * dom/DocumentImpl.cpp:
        * dom/dom_position.cpp:
        * khtml/ecma/kjs_window.cpp:
        * khtml/html/HTMLInputElementImpl.cpp:
        * khtml/html/html_headimpl.cpp:
        * khtml/html/htmlparser.cpp:
        * khtml/misc/decoder.cpp:
        * ksvg2/svg/SVGDocumentImpl.cpp:
        * kwq/KWQComboBox.mm:
        * kwq/KWQKSSLKeyGen.mm:
        * kwq/KWQListBox.mm:
        * kwq/KWQListImpl.cpp:
        * kwq/KWQListImpl.h:
        * kwq/KWQScrollBar.mm:
        * kwq/KWQSlider.mm:
        * kwq/KWQTextField.mm:
        * kwq/KWQValueList.h:
        * loader/DocLoader.cpp:
        * page/Frame.cpp:
        * page/FrameView.cpp:
        * platform/mac/WidgetMac.mm:
        (WebCore::Widget::beforeMouseDown):
        (WebCore::Widget::afterMouseDown):
        * rendering/render_applet.cpp:
        * rendering/render_form.cpp:
        * rendering/render_image.cpp:
        * rendering/render_list.cpp:
        Updated includes and protocol names.

        * khtml/html/htmltokenizer.cpp: (WebCore::HTMLTokenizer::write): Remove
        QT_VERSION code.
        * platform/QString.h: Remove QT_VERSION.

        * kwq/KWQPtrList.h: Change to no longer use QPtrCollection.

        * kwq/KWQRenderTreeDebug.h:
        * kwq/KWQRenderTreeDebug.cpp: (externalRepresentation):
        Remove unused debuggingRenderTree boolean.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@13187 268f45cc-cd09-0410-ab3c-d52691b4dbfc

57 files changed:
WebCore/ChangeLog
WebCore/ForwardingHeaders/klocale.h [deleted file]
WebCore/WebCore.vcproj/WebCore/WebCore.vcproj
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/bridge/mac/WebCoreFrameBridge.mm
WebCore/css/css_valueimpl.cpp
WebCore/css/cssparser.cpp
WebCore/css/cssstyleselector.cpp
WebCore/dom/DocumentImpl.cpp
WebCore/dom/dom_position.cpp
WebCore/editing/visible_units.cpp
WebCore/khtml/ecma/kjs_navigator.cpp
WebCore/khtml/ecma/kjs_window.cpp
WebCore/khtml/html/HTMLFormElementImpl.cpp
WebCore/khtml/html/HTMLInputElementImpl.cpp
WebCore/khtml/html/html_documentimpl.cpp
WebCore/khtml/html/html_headimpl.cpp
WebCore/khtml/html/htmlparser.cpp
WebCore/khtml/html/htmltokenizer.cpp
WebCore/khtml/misc/decoder.cpp
WebCore/khtml/misc/helper.cpp [deleted file]
WebCore/khtml/misc/helper.h [deleted file]
WebCore/ksvg2/svg/SVGDocumentImpl.cpp
WebCore/ksvg2/svg/SVGTestsImpl.cpp
WebCore/kwq/KWQComboBox.mm
WebCore/kwq/KWQKSSLKeyGen.mm
WebCore/kwq/KWQKURL.h [deleted file]
WebCore/kwq/KWQKURL.mm [deleted file]
WebCore/kwq/KWQListBox.mm
WebCore/kwq/KWQListImpl.cpp
WebCore/kwq/KWQListImpl.h
WebCore/kwq/KWQPtrList.h
WebCore/kwq/KWQRenderTreeDebug.cpp
WebCore/kwq/KWQRenderTreeDebug.h
WebCore/kwq/KWQScrollBar.mm
WebCore/kwq/KWQSlider.mm
WebCore/kwq/KWQTextField.mm
WebCore/kwq/KWQValueList.h
WebCore/loader/DocLoader.cpp
WebCore/page/Frame.cpp
WebCore/page/FrameView.cpp
WebCore/platform/CookieJar.h [new file with mode: 0644]
WebCore/platform/Language.h [moved from WebCore/kwq/KWQKCookieJar.h with 81% similarity]
WebCore/platform/LocalizedStrings.h [moved from WebCore/kwq/KWQKLocale.h with 80% similarity]
WebCore/platform/QString.h
WebCore/platform/TextBoundaries.h [moved from WebCore/kwq/KWQCollection.h with 69% similarity]
WebCore/platform/mac/CookieJar.mm [moved from WebCore/kwq/KWQKCookieJar.mm with 71% similarity]
WebCore/platform/mac/Language.mm [moved from WebCore/kwq/KWQTextUtilities.h with 71% similarity]
WebCore/platform/mac/LocalizedStringsMac.mm [moved from WebCore/kwq/KWQKLocale.mm with 62% similarity]
WebCore/platform/mac/TextBoundaries.mm [moved from WebCore/kwq/KWQTextUtilities.mm with 62% similarity]
WebCore/platform/mac/WebCoreWidgetHolder.h [moved from WebCore/kwq/KWQView.h with 89% similarity]
WebCore/platform/mac/WidgetMac.mm
WebCore/rendering/render_applet.cpp
WebCore/rendering/render_form.cpp
WebCore/rendering/render_frames.cpp
WebCore/rendering/render_image.cpp
WebCore/rendering/render_list.cpp

index f820a25d32fbfd36f34b586284a871f2ddf7034f..f263dc7cefa27fbe7ec4f4e850d4ebb5bfb0888f 100644 (file)
@@ -1,3 +1,106 @@
+2006-03-07  Darin Adler  <darin@apple.com>
+
+        Reviewed by Adele, except for the first change listed.
+
+        - fix recently-introduced bug that GuardMalloc found while I was debugging my other change
+
+        * rendering/render_frames.cpp: (WebCore::RenderPart::~RenderPart):
+        Set m_widget to 0 before calling deref so we don't end up trying to do unwanted work.
+
+        - removed 10 more files from KWQ
+
+        * ForwardingHeaders/klocale.h: Removed.
+
+        * khtml/misc/helper.cpp: Removed.
+        * khtml/misc/helper.h: Removed.
+
+        * kwq/KWQCollection.h: Removed.
+        * kwq/KWQKCookieJar.h: Removed.
+        * kwq/KWQKCookieJar.mm: Removed.
+        * kwq/KWQKLocale.h: Removed.
+        * kwq/KWQKLocale.mm: Removed.
+        * kwq/KWQKURL.h: Removed.
+        * kwq/KWQKURL.mm: Removed.
+        * kwq/KWQTextUtilities.h: Removed.
+        * kwq/KWQTextUtilities.mm: Removed.
+        * kwq/KWQView.h: Removed.
+
+        * platform/CookieJar.h: Added.
+        * platform/Language.h: Added.
+        * platform/LocalizedStrings.h: Added.
+        * platform/TextBoundaries.h: Added.
+        * platform/mac/CookieJar.mm: Added.
+        * platform/mac/Language.mm: Added.
+        * platform/mac/LocalizedStringsMac.mm: Added.
+        * platform/mac/TextBoundaries.mm: Added.
+        * platform/mac/WebCoreWidgetHolder.h: Added.
+
+        * WebCore.xcodeproj/project.pbxproj: Updated for removed and added files.
+        * WebCore.vcproj/WebCore/WebCore.vcproj: Updated for removed and added files.
+
+        * bridge/mac/WebCoreFrameBridge.mm: Updated includes.
+        (-[WebCoreFrameBridge elementForView:]): Changed KWQWidgetHolder to WebCoreWidgetHolder.
+
+        * editing/visible_units.cpp:
+        (WebCore::previousWordPositionBoundary):
+        (WebCore::nextWordPositionBoundary):
+        (WebCore::previousSentencePositionBoundary):
+        (WebCore::nextSentencePositionBoundary):
+        Call TextBoundaries.h functions instead of helper.h ones.
+
+        * khtml/ecma/kjs_navigator.cpp: (KJS::Navigator::getValueProperty):
+        * ksvg2/svg/SVGTestsImpl.cpp: (WebCore::SVGTestsImpl::isValid):
+        Changed to call defaultLanguage; cleaned up formatting.
+
+        * khtml/html/HTMLFormElementImpl.cpp: Removed stray comment.
+
+        * khtml/html/html_documentimpl.cpp:
+        (WebCore::HTMLDocumentImpl::cookie):
+        (WebCore::HTMLDocumentImpl::setCookie):
+        Call CookieJar.h functions.
+
+        * css/css_valueimpl.cpp:
+        * css/cssparser.cpp:
+        * css/cssstyleselector.cpp:
+        * dom/DocumentImpl.cpp:
+        * dom/dom_position.cpp:
+        * khtml/ecma/kjs_window.cpp:
+        * khtml/html/HTMLInputElementImpl.cpp:
+        * khtml/html/html_headimpl.cpp:
+        * khtml/html/htmlparser.cpp:
+        * khtml/misc/decoder.cpp:
+        * ksvg2/svg/SVGDocumentImpl.cpp:
+        * kwq/KWQComboBox.mm:
+        * kwq/KWQKSSLKeyGen.mm:
+        * kwq/KWQListBox.mm:
+        * kwq/KWQListImpl.cpp:
+        * kwq/KWQListImpl.h:
+        * kwq/KWQScrollBar.mm:
+        * kwq/KWQSlider.mm:
+        * kwq/KWQTextField.mm:
+        * kwq/KWQValueList.h:
+        * loader/DocLoader.cpp:
+        * page/Frame.cpp:
+        * page/FrameView.cpp:
+        * platform/mac/WidgetMac.mm:
+        (WebCore::Widget::beforeMouseDown):
+        (WebCore::Widget::afterMouseDown):
+        * rendering/render_applet.cpp:
+        * rendering/render_form.cpp:
+        * rendering/render_image.cpp:
+        * rendering/render_list.cpp:
+        Updated includes and protocol names.
+
+        * khtml/html/htmltokenizer.cpp: (WebCore::HTMLTokenizer::write): Remove
+        QT_VERSION code.
+        * platform/QString.h: Remove QT_VERSION.
+
+        * kwq/KWQPtrList.h: Change to no longer use QPtrCollection.
+
+        * kwq/KWQRenderTreeDebug.h:
+        * kwq/KWQRenderTreeDebug.cpp: (externalRepresentation):
+        Remove unused debuggingRenderTree boolean.
+
 2006-03-07  Eric Seidel  <eseidel@apple.com>
 
         Reviewed by darin.
diff --git a/WebCore/ForwardingHeaders/klocale.h b/WebCore/ForwardingHeaders/klocale.h
deleted file mode 100644 (file)
index 4066e8e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "KWQKLocale.h"
index 8486358bf85ccf2833a792b3fecd560a18e65cc9..76486344c3d96ddc8a52b3e9a38855c4ad514431 100644 (file)
                                RelativePath="..\..\kwq\KWQClipboard.h"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\kwq\KWQCollection.h"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\kwq\KWQComboBox.h"\r
                                >\r
                                RelativePath="..\..\kwq\KWQFormData.h"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\kwq\KWQKCookieJar.h"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\kwq\KWQKHTMLSettings.h"\r
                                >\r
                                RelativePath="..\..\kwq\KWQKJavaAppletWidget.h"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\kwq\KWQKLocale.h"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\kwq\KWQKSSLKeyGen.h"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\kwq\KWQKURL.h"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\kwq\KWQKWinModule.h"\r
                                >\r
                                RelativePath="..\..\kwq\KWQTextStream.h"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\kwq\KWQTextUtilities.h"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\kwq\KWQValueList.h"\r
                                >\r
                                RelativePath="..\..\kwq\KWQValueListImpl.h"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\kwq\KWQView.h"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\kwq\KWQWindowWidget.h"\r
                                >\r
                                        RelativePath="..\..\khtml\misc\formdata.h"\r
                                        >\r
                                </File>\r
-                               <File\r
-                                       RelativePath="..\..\khtml\misc\helper.cpp"\r
-                                       >\r
-                               </File>\r
-                               <File\r
-                                       RelativePath="..\..\khtml\misc\helper.h"\r
-                                       >\r
-                               </File>\r
                        </Filter>\r
                </Filter>\r
                <Filter\r
                        <File\r
                                RelativePath="..\..\loader\DocLoader.cpp"\r
                                >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               ObjectFile="$(IntDir)\$(InputName)1.obj"\r
-                                               XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               ObjectFile="$(IntDir)\$(InputName)1.obj"\r
-                                               XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"\r
-                                       />\r
-                               </FileConfiguration>\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\loader\DocLoader.h"\r
                        <File\r
                                RelativePath="..\..\loader\Request.cpp"\r
                                >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               ObjectFile="$(IntDir)\$(InputName)1.obj"\r
-                                               XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               ObjectFile="$(IntDir)\$(InputName)1.obj"\r
-                                               XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"\r
-                                       />\r
-                               </FileConfiguration>\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\loader\Request.h"\r
                        <File\r
                                RelativePath="..\..\platform\Arena.cpp"\r
                                >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               ObjectFile="$(IntDir)\$(InputName)1.obj"\r
-                                               XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               ObjectFile="$(IntDir)\$(InputName)1.obj"\r
-                                               XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"\r
-                                       />\r
-                               </FileConfiguration>\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\platform\Arena.h"\r
                                RelativePath="..\..\platform\Color.h"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\..\platform\CookieJar.h"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath="..\..\platform\Cursor.h"\r
                                >\r
                                RelativePath="..\..\platform\KURL.h"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\..\platform\Language.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\platform\LocalizedStrings.h"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath="..\..\platform\Logging.cpp"\r
                                >\r
                                RelativePath="..\..\platform\SystemTime.h"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\..\platform\TextBoundaries.h"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath="..\..\platform\TextEncoding.cpp"\r
                                >\r
                        <File\r
                                RelativePath="..\..\xml\xmlhttprequest.cpp"\r
                                >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               ObjectFile="$(IntDir)\$(InputName)1.obj"\r
-                                               XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               ObjectFile="$(IntDir)\$(InputName)1.obj"\r
-                                               XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"\r
-                                       />\r
-                               </FileConfiguration>\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\xml\xmlhttprequest.h"\r
index aa81af6e2f3a7b38958d632029469477539f34b5..0624e4f97db66eb5dc2f236808bd30bbc9fc33a4 100644 (file)
                93309EA2099EB78C0056E581 /* SharedTimerMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93309E9F099EB78C0056E581 /* SharedTimerMac.cpp */; };
                93309EA3099EB78C0056E581 /* SharedTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 93309EA0099EB78C0056E581 /* SharedTimer.h */; };
                93309EA4099EB78C0056E581 /* Timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93309EA1099EB78C0056E581 /* Timer.cpp */; };
+               9352071909BD3BA500F2038D /* StaticConstructors.h in Headers */ = {isa = PBXBuildFile; fileRef = 9352071709BD3BA500F2038D /* StaticConstructors.h */; };
+               9352071A09BD3BA500F2038D /* TextBoundaries.h in Headers */ = {isa = PBXBuildFile; fileRef = 9352071809BD3BA500F2038D /* TextBoundaries.h */; };
+               9352071D09BD3BBB00F2038D /* TextBoundaries.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9352071B09BD3BBB00F2038D /* TextBoundaries.mm */; };
+               9352071E09BD3BBB00F2038D /* WebCoreWidgetHolder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9352071C09BD3BBB00F2038D /* WebCoreWidgetHolder.h */; };
+               935207BE09BD410A00F2038D /* LocalizedStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = 935207BD09BD410A00F2038D /* LocalizedStrings.h */; };
+               935207C009BD412100F2038D /* LocalizedStringsMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 935207BF09BD412000F2038D /* LocalizedStringsMac.mm */; };
+               9352084509BD43B900F2038D /* Language.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9352084409BD43B900F2038D /* Language.mm */; };
+               9352087709BD453400F2038D /* CookieJar.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9352087609BD453400F2038D /* CookieJar.mm */; };
+               9352088209BD45E900F2038D /* CookieJar.h in Headers */ = {isa = PBXBuildFile; fileRef = 9352088109BD45E900F2038D /* CookieJar.h */; };
                9353673F09AED79200D35CD6 /* ScrollBarMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 9353673E09AED79200D35CD6 /* ScrollBarMode.h */; };
                9353676B09AED88B00D35CD6 /* ScrollViewMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9353676A09AED88B00D35CD6 /* ScrollViewMac.mm */; };
                935367E509AF77DD00D35CD6 /* GraphicsContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 935367E409AF77DD00D35CD6 /* GraphicsContext.h */; };
                93F198EF08245E59001E9ABC /* htmlparser.h in Headers */ = {isa = PBXBuildFile; fileRef = F523D25102DE4396018635CA /* htmlparser.h */; };
                93F198F008245E59001E9ABC /* htmltokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = F523D25302DE4396018635CA /* htmltokenizer.h */; };
                93F198F608245E59001E9ABC /* decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = F523D27902DE43D7018635CA /* decoder.h */; };
-               93F198F708245E59001E9ABC /* helper.h in Headers */ = {isa = PBXBuildFile; fileRef = F523D27B02DE43D7018635CA /* helper.h */; };
                93F1991708245E59001E9ABC /* dom2_eventsimpl.h in Headers */ = {isa = PBXBuildFile; fileRef = F523D30202DE4476018635CA /* dom2_eventsimpl.h */; };
                93F1991808245E59001E9ABC /* dom2_rangeimpl.h in Headers */ = {isa = PBXBuildFile; fileRef = F523D30402DE4476018635CA /* dom2_rangeimpl.h */; };
                93F1991908245E59001E9ABC /* dom2_traversalimpl.h in Headers */ = {isa = PBXBuildFile; fileRef = F523D30602DE4476018635CA /* dom2_traversalimpl.h */; };
                93F1992008245E59001E9ABC /* dom_xmlimpl.h in Headers */ = {isa = PBXBuildFile; fileRef = F523D30002DE4476018635CA /* dom_xmlimpl.h */; };
                93F1992108245E59001E9ABC /* xml_tokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = F523D30A02DE4476018635CA /* xml_tokenizer.h */; };
                93F1992908245E59001E9ABC /* KWQCString.h in Headers */ = {isa = PBXBuildFile; fileRef = F587868302DE3B8601EA4122 /* KWQCString.h */; };
-               93F1992C08245E59001E9ABC /* KWQCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = F587868002DE3B8601EA4122 /* KWQCollection.h */; };
                93F1992E08245E59001E9ABC /* KWQComboBox.h in Headers */ = {isa = PBXBuildFile; fileRef = F587868202DE3B8601EA4122 /* KWQComboBox.h */; };
                93F1992F08245E59001E9ABC /* Cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = F587868402DE3B8601EA4122 /* Cursor.h */; };
                93F1993308245E59001E9ABC /* KWQDef.h in Headers */ = {isa = PBXBuildFile; fileRef = F58784DA02DE375901EA4122 /* KWQDef.h */; };
                93F1993908245E59001E9ABC /* KWQFileButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CCF7D4033BD43C008635CE /* KWQFileButton.h */; };
-               93F1994508245E59001E9ABC /* KWQKCookieJar.h in Headers */ = {isa = PBXBuildFile; fileRef = F58784EE02DE375901EA4122 /* KWQKCookieJar.h */; };
                93F1994F08245E59001E9ABC /* KWQKHTMLSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = F587863A02DE3A1401EA4122 /* KWQKHTMLSettings.h */; };
                93F1995008245E59001E9ABC /* KWQKIOGlobal.h in Headers */ = {isa = PBXBuildFile; fileRef = F587864902DE3A9A01EA4122 /* KWQKIOGlobal.h */; };
                93F1995408245E59001E9ABC /* KWQKJavaAppletWidget.h in Headers */ = {isa = PBXBuildFile; fileRef = F587864502DE3A7701EA4122 /* KWQKJavaAppletWidget.h */; };
-               93F1995B08245E59001E9ABC /* KWQKLocale.h in Headers */ = {isa = PBXBuildFile; fileRef = F58785FA02DE382001EA4122 /* KWQKLocale.h */; };
                93F1996308245E59001E9ABC /* KWQKSSLKeyGen.h in Headers */ = {isa = PBXBuildFile; fileRef = F587866202DE3B1101EA4122 /* KWQKSSLKeyGen.h */; };
                93F1996B08245E59001E9ABC /* KWQLineEdit.h in Headers */ = {isa = PBXBuildFile; fileRef = F587869802DE3B8601EA4122 /* KWQLineEdit.h */; };
                93F1996C08245E59001E9ABC /* KWQListBox.h in Headers */ = {isa = PBXBuildFile; fileRef = F587851302DE375901EA4122 /* KWQListBox.h */; };
                93F1999B08245E59001E9ABC /* KWQTextStream.h in Headers */ = {isa = PBXBuildFile; fileRef = F58786BF02DE3B8601EA4122 /* KWQTextStream.h */; };
                93F1999D08245E59001E9ABC /* KWQValueList.h in Headers */ = {isa = PBXBuildFile; fileRef = F58786C202DE3B8601EA4122 /* KWQValueList.h */; };
                93F1999E08245E59001E9ABC /* KWQValueListImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = F587853B02DE375901EA4122 /* KWQValueListImpl.h */; };
-               93F199A108245E59001E9ABC /* KWQView.h in Headers */ = {isa = PBXBuildFile; fileRef = F587854002DE375901EA4122 /* KWQView.h */; };
                93F199A308245E59001E9ABC /* KWQWindowWidget.h in Headers */ = {isa = PBXBuildFile; fileRef = F587854302DE375901EA4122 /* KWQWindowWidget.h */; };
                93F199A508245E59001E9ABC /* WebCoreCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B2A4FC02E2220F018635CB /* WebCoreCache.h */; settings = {ATTRIBUTES = (Private, ); }; };
                93F199A608245E59001E9ABC /* WebCoreCookieAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = F587854902DE375901EA4122 /* WebCoreCookieAdapter.h */; settings = {ATTRIBUTES = (Private, ); }; };
                93F199D508245E59001E9ABC /* KWQEditCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = BEF7EEA005FF8F0D009717EE /* KWQEditCommand.h */; };
                93F199DE08245E59001E9ABC /* dom_position.h in Headers */ = {isa = PBXBuildFile; fileRef = BE91FC8B06133666005E3790 /* dom_position.h */; };
                93F199E008245E59001E9ABC /* KWQSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = BC86FB8D061F5C23006BB822 /* KWQSlider.h */; };
-               93F199E108245E59001E9ABC /* KWQTextUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = BE8BD8F306359F6000D3F20B /* KWQTextUtilities.h */; };
                93F199E508245E59001E9ABC /* html_canvasimpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F6A3D60663BF04004D2919 /* html_canvasimpl.h */; };
                93F199E708245E59001E9ABC /* KWQClipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D90660B0665D937006B6F1A /* KWQClipboard.h */; };
                93F199EC08245E59001E9ABC /* xsl_stylesheetimpl.h in Headers */ = {isa = PBXBuildFile; fileRef = BC06F24A06D18A7E004A6FA3 /* xsl_stylesheetimpl.h */; };
                93F19A0B08245E59001E9ABC /* westResizeCursor.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 84C0FA2E052B966D000440A1 /* westResizeCursor.tiff */; };
                93F19A1708245E59001E9ABC /* KWQComboBox.mm in Sources */ = {isa = PBXBuildFile; fileRef = F58784D202DE375901EA4122 /* KWQComboBox.mm */; };
                93F19A1808245E59001E9ABC /* KWQCString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F58784D502DE375901EA4122 /* KWQCString.cpp */; };
-               93F19A2508245E59001E9ABC /* KWQKCookieJar.mm in Sources */ = {isa = PBXBuildFile; fileRef = F58784EF02DE375901EA4122 /* KWQKCookieJar.mm */; };
                93F19A2608245E59001E9ABC /* CursorMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = F58784F002DE375901EA4122 /* CursorMac.mm */; };
                93F19A2E08245E59001E9ABC /* KWQKJavaAppletWidget.mm in Sources */ = {isa = PBXBuildFile; fileRef = F58784FF02DE375901EA4122 /* KWQKJavaAppletWidget.mm */; };
                93F19A3108245E59001E9ABC /* KWQLoader.mm in Sources */ = {isa = PBXBuildFile; fileRef = F587850302DE375901EA4122 /* KWQLoader.mm */; };
-               93F19A3208245E59001E9ABC /* KWQKLocale.mm in Sources */ = {isa = PBXBuildFile; fileRef = F587850402DE375901EA4122 /* KWQKLocale.mm */; };
                93F19A3A08245E59001E9ABC /* KWQLineEdit.mm in Sources */ = {isa = PBXBuildFile; fileRef = F587851202DE375901EA4122 /* KWQLineEdit.mm */; };
                93F19A3B08245E59001E9ABC /* KWQListBox.mm in Sources */ = {isa = PBXBuildFile; fileRef = F587851402DE375901EA4122 /* KWQListBox.mm */; };
                93F19A3C08245E59001E9ABC /* KWQListImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F587851602DE375901EA4122 /* KWQListImpl.cpp */; };
                93F19A9B08245E59001E9ABC /* htmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F523D25002DE4396018635CA /* htmlparser.cpp */; };
                93F19A9C08245E59001E9ABC /* htmltokenizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F523D25202DE4396018635CA /* htmltokenizer.cpp */; };
                93F19A9D08245E59001E9ABC /* decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F523D27802DE43D7018635CA /* decoder.cpp */; };
-               93F19A9E08245E59001E9ABC /* helper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F523D27A02DE43D7018635CA /* helper.cpp */; };
                93F19AB308245E59001E9ABC /* dom_elementimpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F523D2F702DE4476018635CA /* dom_elementimpl.cpp */; };
                93F19AB708245E59001E9ABC /* dom_xmlimpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F523D2FF02DE4476018635CA /* dom_xmlimpl.cpp */; };
                93F19AB808245E59001E9ABC /* dom2_eventsimpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F523D30102DE4476018635CA /* dom2_eventsimpl.cpp */; };
                93F19AFA08245E59001E9ABC /* KWQSlider.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC86FB8E061F5C23006BB822 /* KWQSlider.mm */; };
                93F19AFD08245E59001E9ABC /* html_canvasimpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F6A3D50663BF04004D2919 /* html_canvasimpl.cpp */; };
                93F19AFF08245E59001E9ABC /* KWQClipboard.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D90660C0665D937006B6F1A /* KWQClipboard.mm */; };
-               93F19B0208245E59001E9ABC /* KWQTextUtilities.mm in Sources */ = {isa = PBXBuildFile; fileRef = BE1A407106CA8A33005B28CF /* KWQTextUtilities.mm */; };
                93F19B0308245E59001E9ABC /* xsl_stylesheetimpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC06F24906D18A7E004A6FA3 /* xsl_stylesheetimpl.cpp */; };
                93F19B0408245E59001E9ABC /* xslt_processorimpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC06F24B06D18A7E004A6FA3 /* xslt_processorimpl.cpp */; };
                93F19B0508245E59001E9ABC /* formdata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93ABCE5D06E1A42E0085925B /* formdata.cpp */; };
                93309EA1099EB78C0056E581 /* Timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Timer.cpp; path = platform/Timer.cpp; sourceTree = "<group>"; };
                93386B90037045B3008635CE /* KWQResourceLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQResourceLoader.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                93386B91037045B3008635CE /* KWQResourceLoader.mm */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KWQResourceLoader.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
+               9352071709BD3BA500F2038D /* StaticConstructors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StaticConstructors.h; path = platform/StaticConstructors.h; sourceTree = "<group>"; };
+               9352071809BD3BA500F2038D /* TextBoundaries.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TextBoundaries.h; path = platform/TextBoundaries.h; sourceTree = "<group>"; };
+               9352071B09BD3BBB00F2038D /* TextBoundaries.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TextBoundaries.mm; sourceTree = "<group>"; };
+               9352071C09BD3BBB00F2038D /* WebCoreWidgetHolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreWidgetHolder.h; sourceTree = "<group>"; };
+               935207BD09BD410A00F2038D /* LocalizedStrings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LocalizedStrings.h; path = platform/LocalizedStrings.h; sourceTree = "<group>"; };
+               935207BF09BD412000F2038D /* LocalizedStringsMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = LocalizedStringsMac.mm; sourceTree = "<group>"; };
+               9352084409BD43B900F2038D /* Language.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Language.mm; sourceTree = "<group>"; };
+               9352087609BD453400F2038D /* CookieJar.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CookieJar.mm; sourceTree = "<group>"; };
+               9352088109BD45E900F2038D /* CookieJar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CookieJar.h; path = platform/CookieJar.h; sourceTree = "<group>"; };
                9353673E09AED79200D35CD6 /* ScrollBarMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScrollBarMode.h; path = platform/ScrollBarMode.h; sourceTree = "<group>"; };
                9353676A09AED88B00D35CD6 /* ScrollViewMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScrollViewMac.mm; sourceTree = "<group>"; };
                935367E409AF77DD00D35CD6 /* GraphicsContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GraphicsContext.h; path = platform/GraphicsContext.h; sourceTree = "<group>"; };
                BCFB2F40097A24B500BA703D /* SegmentedString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SegmentedString.h; path = platform/SegmentedString.h; sourceTree = "<group>"; };
                BCFB2F74097A2E1A00BA703D /* Arena.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Arena.cpp; path = platform/Arena.cpp; sourceTree = "<group>"; };
                BCFB2F75097A2E1A00BA703D /* Arena.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Arena.h; path = platform/Arena.h; sourceTree = "<group>"; };
-               BE1A407106CA8A33005B28CF /* KWQTextUtilities.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KWQTextUtilities.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                BE26F15305517DE000BFA0C3 /* WebCoreGraphicsBridge.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreGraphicsBridge.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                BE26F15405517DE000BFA0C3 /* WebCoreGraphicsBridge.m */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebCoreGraphicsBridge.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                BE855F7F0701E83500239769 /* WebCoreView.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreView.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                BE8560510701F91100239769 /* WebCoreView.m */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebCoreView.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               BE8BD8F306359F6000D3F20B /* KWQTextUtilities.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQTextUtilities.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                BE91FC8B06133666005E3790 /* dom_position.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = dom_position.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                BE91FC8C06133666005E3790 /* dom_position.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dom_position.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                BE983D95052A2E0A00892D85 /* WebCoreKeyboardAccess.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreKeyboardAccess.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F523D25302DE4396018635CA /* htmltokenizer.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = htmltokenizer.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F523D27802DE43D7018635CA /* decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F523D27902DE43D7018635CA /* decoder.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = decoder.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               F523D27A02DE43D7018635CA /* helper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = helper.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               F523D27B02DE43D7018635CA /* helper.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = helper.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F523D2F702DE4476018635CA /* dom_elementimpl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dom_elementimpl.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F523D2F802DE4476018635CA /* dom_elementimpl.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = dom_elementimpl.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F523D2FF02DE4476018635CA /* dom_xmlimpl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dom_xmlimpl.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F58784D202DE375901EA4122 /* KWQComboBox.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KWQComboBox.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F58784D502DE375901EA4122 /* KWQCString.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KWQCString.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F58784DA02DE375901EA4122 /* KWQDef.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQDef.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               F58784EE02DE375901EA4122 /* KWQKCookieJar.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQKCookieJar.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               F58784EF02DE375901EA4122 /* KWQKCookieJar.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KWQKCookieJar.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F58784F002DE375901EA4122 /* CursorMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CursorMac.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F58784FF02DE375901EA4122 /* KWQKJavaAppletWidget.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KWQKJavaAppletWidget.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587850302DE375901EA4122 /* KWQLoader.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KWQLoader.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               F587850402DE375901EA4122 /* KWQKLocale.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KWQKLocale.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587851202DE375901EA4122 /* KWQLineEdit.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KWQLineEdit.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587851302DE375901EA4122 /* KWQListBox.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQListBox.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587851402DE375901EA4122 /* KWQListBox.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KWQListBox.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587853902DE375901EA4122 /* KWQTextStream.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KWQTextStream.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587853B02DE375901EA4122 /* KWQValueListImpl.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQValueListImpl.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587853C02DE375901EA4122 /* KWQValueListImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KWQValueListImpl.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               F587854002DE375901EA4122 /* KWQView.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQView.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587854302DE375901EA4122 /* KWQWindowWidget.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQWindowWidget.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587854402DE375901EA4122 /* KWQWindowWidget.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KWQWindowWidget.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587854902DE375901EA4122 /* WebCoreCookieAdapter.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreCookieAdapter.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587855302DE375901EA4122 /* WebCoreTextRendererFactory.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 30; indentWidth = 4; path = WebCoreTextRendererFactory.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587855402DE375901EA4122 /* WebCoreViewFactory.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreViewFactory.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587855502DE375901EA4122 /* WebCoreViewFactory.m */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebCoreViewFactory.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               F58785FA02DE382001EA4122 /* KWQKLocale.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQKLocale.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587863A02DE3A1401EA4122 /* KWQKHTMLSettings.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQKHTMLSettings.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587864502DE3A7701EA4122 /* KWQKJavaAppletWidget.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQKJavaAppletWidget.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587864902DE3A9A01EA4122 /* KWQKIOGlobal.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQKIOGlobal.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587866202DE3B1101EA4122 /* KWQKSSLKeyGen.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQKSSLKeyGen.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               F587868002DE3B8601EA4122 /* KWQCollection.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQCollection.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587868202DE3B8601EA4122 /* KWQComboBox.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQComboBox.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587868302DE3B8601EA4122 /* KWQCString.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQCString.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                F587868402DE3B8601EA4122 /* Cursor.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; name = Cursor.h; path = platform/Cursor.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                6582A14809999D6C00BEEB6D /* mac */ = {
                        isa = PBXGroup;
                        children = (
-                               6545F67509B830180013006F /* TransferJobMac.mm */,
                                6582A14909999D6C00BEEB6D /* ColorMac.mm */,
+                               9352087609BD453400F2038D /* CookieJar.mm */,
                                F58784F002DE375901EA4122 /* CursorMac.mm */,
                                65F5386809B2BFDA00F3DC4A /* ExtraCFEncodings.h */,
                                6582A14A09999D6C00BEEB6D /* FloatPointMac.mm */,
                                6582A15109999D6D00BEEB6D /* IntSizeMac.mm */,
                                935C476E09AC4D7300A6AAB4 /* KeyEventMac.mm */,
                                6593923909AE435C002C531F /* KURLMac.mm */,
+                               9352084409BD43B900F2038D /* Language.mm */,
+                               935207BF09BD412000F2038D /* LocalizedStringsMac.mm */,
                                65F5382409B2B57500F3DC4A /* mac-encodings.txt */,
                                935C476F09AC4D7300A6AAB4 /* MouseEventMac.mm */,
                                6582A15209999D6D00BEEB6D /* PDFDocumentImage.h */,
                                9353676A09AED88B00D35CD6 /* ScrollViewMac.mm */,
                                93309E9F099EB78C0056E581 /* SharedTimerMac.cpp */,
                                6582A15509999D6D00BEEB6D /* SystemTimeMac.cpp */,
+                               9352071B09BD3BBB00F2038D /* TextBoundaries.mm */,
                                6576F9D509B2484A000041F7 /* TextEncodingMac.cpp */,
+                               6545F67509B830180013006F /* TransferJobMac.mm */,
                                F587854902DE375901EA4122 /* WebCoreCookieAdapter.h */,
                                F587854A02DE375901EA4122 /* WebCoreCookieAdapter.m */,
                                BE26F15305517DE000BFA0C3 /* WebCoreGraphicsBridge.h */,
                                F587855302DE375901EA4122 /* WebCoreTextRendererFactory.mm */,
                                BE855F7F0701E83500239769 /* WebCoreView.h */,
                                BE8560510701F91100239769 /* WebCoreView.m */,
+                               9352071C09BD3BBB00F2038D /* WebCoreWidgetHolder.h */,
                                935C477209AC4D7700A6AAB4 /* WheelEventMac.mm */,
                                9380F47709A11ACC001FDB34 /* WidgetMac.mm */,
                        );
                                BCC8CFC80986CD2400140BF2 /* Color.cpp */,
                                BCC8CFC90986CD2400140BF2 /* Color.h */,
                                BCC8CFCA0986CD2400140BF2 /* ColorData.gperf */,
+                               9352088109BD45E900F2038D /* CookieJar.h */,
                                F587868402DE3B8601EA4122 /* Cursor.h */,
                                BC73E3900978CED700EDFF8A /* FloatPoint.cpp */,
                                BC73E3910978CED700EDFF8A /* FloatPoint.h */,
                                935C476609AC4D4300A6AAB4 /* KeyEvent.h */,
                                6593923509AE4346002C531F /* KURL.cpp */,
                                6593923609AE4346002C531F /* KURL.h */,
+                               935207BD09BD410A00F2038D /* LocalizedStrings.h */,
                                A8239DFE09B3CF8A00B60641 /* Logging.cpp */,
                                A8239DFF09B3CF8A00B60641 /* Logging.h */,
                                65F5382109B2B55700F3DC4A /* make-charset-table.pl */,
                                BCFB2F40097A24B500BA703D /* SegmentedString.h */,
                                BCFB2E830979FD4F00BA703D /* Shared.h */,
                                93309EA0099EB78C0056E581 /* SharedTimer.h */,
+                               9352071709BD3BA500F2038D /* StaticConstructors.h */,
                                657BD74909AFDC54005A2056 /* StreamingTextDecoder.cpp */,
                                657BD74A09AFDC54005A2056 /* StreamingTextDecoder.h */,
                                93CD4FDA0995F9EA007ECC97 /* String.cpp */,
                                93CD4FDC0995F9EA007ECC97 /* StringImpl.cpp */,
                                93CD4FDD0995F9EA007ECC97 /* StringImpl.h */,
                                93E62D990985F41600E1B5E3 /* SystemTime.h */,
+                               9352071809BD3BA500F2038D /* TextBoundaries.h */,
                                9353686A09AF78F600D35CD6 /* TextDirection.h */,
                                657BD74B09AFDC54005A2056 /* TextEncoding.cpp */,
                                657BD74C09AFDC54005A2056 /* TextEncoding.h */,
                                93CCF7D5033BD43C008635CE /* KWQFileButton.mm */,
                                93B641F206E28C5C0055F610 /* KWQFormData.h */,
                                93B641F106E28C5C0055F610 /* KWQFormData.mm */,
-                               F58784EE02DE375901EA4122 /* KWQKCookieJar.h */,
-                               F58784EF02DE375901EA4122 /* KWQKCookieJar.mm */,
                                F587851702DE375901EA4122 /* KWQLoader.h */,
                                F587850302DE375901EA4122 /* KWQLoader.mm */,
                                9394E0A403AA5BBE008635CE /* KWQPageState.h */,
                                F587853602DE375901EA4122 /* KWQTextArea.mm */,
                                F587851B02DE375901EA4122 /* KWQTextField.h */,
                                F587851C02DE375901EA4122 /* KWQTextField.mm */,
-                               BE8BD8F306359F6000D3F20B /* KWQTextUtilities.h */,
-                               BE1A407106CA8A33005B28CF /* KWQTextUtilities.mm */,
-                               F587854002DE375901EA4122 /* KWQView.h */,
                                F587854302DE375901EA4122 /* KWQWindowWidget.h */,
                                F587854402DE375901EA4122 /* KWQWindowWidget.mm */,
                        );
                                F523D27902DE43D7018635CA /* decoder.h */,
                                93ABCE5D06E1A42E0085925B /* formdata.cpp */,
                                93ABCE5E06E1A42E0085925B /* formdata.h */,
-                               F523D27A02DE43D7018635CA /* helper.cpp */,
-                               F523D27B02DE43D7018635CA /* helper.h */,
                        );
                        path = misc;
                        sourceTree = "<group>";
                F587861C02DE382201EA4122 /* kdecore */ = {
                        isa = PBXGroup;
                        children = (
-                               F58785FA02DE382001EA4122 /* KWQKLocale.h */,
-                               F587850402DE375901EA4122 /* KWQKLocale.mm */,
                        );
                        name = kdecore;
                        sourceTree = "<group>";
                F587871802DE3B8801EA4122 /* qt */ = {
                        isa = PBXGroup;
                        children = (
-                               F587868002DE3B8601EA4122 /* KWQCollection.h */,
                                F587868202DE3B8601EA4122 /* KWQComboBox.h */,
                                F58784D202DE375901EA4122 /* KWQComboBox.mm */,
                                F58784D502DE375901EA4122 /* KWQCString.cpp */,
                                93F198EF08245E59001E9ABC /* htmlparser.h in Headers */,
                                93F198F008245E59001E9ABC /* htmltokenizer.h in Headers */,
                                93F198F608245E59001E9ABC /* decoder.h in Headers */,
-                               93F198F708245E59001E9ABC /* helper.h in Headers */,
                                93F1991708245E59001E9ABC /* dom2_eventsimpl.h in Headers */,
                                93F1991808245E59001E9ABC /* dom2_rangeimpl.h in Headers */,
                                93F1991908245E59001E9ABC /* dom2_traversalimpl.h in Headers */,
                                93F1992008245E59001E9ABC /* dom_xmlimpl.h in Headers */,
                                93F1992108245E59001E9ABC /* xml_tokenizer.h in Headers */,
                                93F1992908245E59001E9ABC /* KWQCString.h in Headers */,
-                               93F1992C08245E59001E9ABC /* KWQCollection.h in Headers */,
                                93F1992E08245E59001E9ABC /* KWQComboBox.h in Headers */,
                                93F1992F08245E59001E9ABC /* Cursor.h in Headers */,
                                93F1993308245E59001E9ABC /* KWQDef.h in Headers */,
                                93F1993908245E59001E9ABC /* KWQFileButton.h in Headers */,
-                               93F1994508245E59001E9ABC /* KWQKCookieJar.h in Headers */,
                                93F1994F08245E59001E9ABC /* KWQKHTMLSettings.h in Headers */,
                                93F1995008245E59001E9ABC /* KWQKIOGlobal.h in Headers */,
                                93F1995408245E59001E9ABC /* KWQKJavaAppletWidget.h in Headers */,
-                               93F1995B08245E59001E9ABC /* KWQKLocale.h in Headers */,
                                93F1996308245E59001E9ABC /* KWQKSSLKeyGen.h in Headers */,
                                93F1996B08245E59001E9ABC /* KWQLineEdit.h in Headers */,
                                93F1996C08245E59001E9ABC /* KWQListBox.h in Headers */,
                                93F1999B08245E59001E9ABC /* KWQTextStream.h in Headers */,
                                93F1999D08245E59001E9ABC /* KWQValueList.h in Headers */,
                                93F1999E08245E59001E9ABC /* KWQValueListImpl.h in Headers */,
-                               93F199A108245E59001E9ABC /* KWQView.h in Headers */,
                                93F199A308245E59001E9ABC /* KWQWindowWidget.h in Headers */,
                                93F199A508245E59001E9ABC /* WebCoreCache.h in Headers */,
                                93F199A608245E59001E9ABC /* WebCoreCookieAdapter.h in Headers */,
                                93F199D508245E59001E9ABC /* KWQEditCommand.h in Headers */,
                                93F199DE08245E59001E9ABC /* dom_position.h in Headers */,
                                93F199E008245E59001E9ABC /* KWQSlider.h in Headers */,
-                               93F199E108245E59001E9ABC /* KWQTextUtilities.h in Headers */,
                                93F199E508245E59001E9ABC /* html_canvasimpl.h in Headers */,
                                93F199E708245E59001E9ABC /* KWQClipboard.h in Headers */,
                                93F199EC08245E59001E9ABC /* xsl_stylesheetimpl.h in Headers */,
                                935FBCF209BA143B00E230B1 /* ExceptionCode.h in Headers */,
                                AB23A31309BBA7760067CC53 /* HTMLTextFieldInnerElementImpl.h in Headers */,
                                AB23A32809BBA7D00067CC53 /* BeforeTextInsertedEventImpl.h in Headers */,
+                               9352071909BD3BA500F2038D /* StaticConstructors.h in Headers */,
+                               9352071A09BD3BA500F2038D /* TextBoundaries.h in Headers */,
+                               9352071E09BD3BBB00F2038D /* WebCoreWidgetHolder.h in Headers */,
+                               935207BE09BD410A00F2038D /* LocalizedStrings.h in Headers */,
+                               9352088209BD45E900F2038D /* CookieJar.h in Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        files = (
                                93F19A1708245E59001E9ABC /* KWQComboBox.mm in Sources */,
                                93F19A1808245E59001E9ABC /* KWQCString.cpp in Sources */,
-                               93F19A2508245E59001E9ABC /* KWQKCookieJar.mm in Sources */,
                                93F19A2608245E59001E9ABC /* CursorMac.mm in Sources */,
                                93F19A2E08245E59001E9ABC /* KWQKJavaAppletWidget.mm in Sources */,
                                93F19A3108245E59001E9ABC /* KWQLoader.mm in Sources */,
-                               93F19A3208245E59001E9ABC /* KWQKLocale.mm in Sources */,
                                93F19A3A08245E59001E9ABC /* KWQLineEdit.mm in Sources */,
                                93F19A3B08245E59001E9ABC /* KWQListBox.mm in Sources */,
                                93F19A3C08245E59001E9ABC /* KWQListImpl.cpp in Sources */,
                                93F19A9B08245E59001E9ABC /* htmlparser.cpp in Sources */,
                                93F19A9C08245E59001E9ABC /* htmltokenizer.cpp in Sources */,
                                93F19A9D08245E59001E9ABC /* decoder.cpp in Sources */,
-                               93F19A9E08245E59001E9ABC /* helper.cpp in Sources */,
                                93F19AB308245E59001E9ABC /* dom_elementimpl.cpp in Sources */,
                                93F19AB708245E59001E9ABC /* dom_xmlimpl.cpp in Sources */,
                                93F19AB808245E59001E9ABC /* dom2_eventsimpl.cpp in Sources */,
                                93F19AFA08245E59001E9ABC /* KWQSlider.mm in Sources */,
                                93F19AFD08245E59001E9ABC /* html_canvasimpl.cpp in Sources */,
                                93F19AFF08245E59001E9ABC /* KWQClipboard.mm in Sources */,
-                               93F19B0208245E59001E9ABC /* KWQTextUtilities.mm in Sources */,
                                93F19B0308245E59001E9ABC /* xsl_stylesheetimpl.cpp in Sources */,
                                93F19B0408245E59001E9ABC /* xslt_processorimpl.cpp in Sources */,
                                93F19B0508245E59001E9ABC /* formdata.cpp in Sources */,
                                6545F67609B830180013006F /* TransferJobMac.mm in Sources */,
                                AB23A31209BBA7760067CC53 /* HTMLTextFieldInnerElementImpl.cpp in Sources */,
                                AB23A32709BBA7D00067CC53 /* BeforeTextInsertedEventImpl.cpp in Sources */,
+                               9352071D09BD3BBB00F2038D /* TextBoundaries.mm in Sources */,
+                               935207C009BD412100F2038D /* LocalizedStringsMac.mm in Sources */,
+                               9352084509BD43B900F2038D /* Language.mm in Sources */,
+                               9352087709BD453400F2038D /* CookieJar.mm in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
index fe6fe0ad68b2cddf541738ef71ab4a1387559e8b..acac08ae994ae44be3e97ed4323d49f5fc62e91c 100644 (file)
@@ -45,7 +45,6 @@
 #import "KWQPageState.h"
 #import "KWQRenderTreeDebug.h"
 #import "TextEncoding.h"
-#import "KWQView.h"
 #import "MacFrame.h"
 #import "NodeImpl.h"
 #import "PageMac.h"
@@ -55,6 +54,7 @@
 #import "WebCoreSettings.h"
 #import "WebCoreTextRendererFactory.h"
 #import "WebCoreViewFactory.h"
+#import "WebCoreWidgetHolder.h"
 #import "csshelper.h"
 #import "DeleteSelectionCommand.h"
 #import "dom2_eventsimpl.h"
@@ -1147,11 +1147,11 @@ static BOOL nowPrinting(WebCoreFrameBridge *self)
     return m_frame->sendContextMenuEvent(event);
 }
 
-- (DOMElement *)elementForView:(NSView *)view
+- (DOMElement*)elementForView:(NSView*)view
 {
     // FIXME: implemented currently for only a subset of the KWQ widgets
-    if ([view conformsToProtocol:@protocol(KWQWidgetHolder)]) {
-        NSView <KWQWidgetHolder> *widgetHolder = view;
+    if ([view conformsToProtocol:@protocol(WebCoreWidgetHolder)]) {
+        NSView <WebCoreWidgetHolder>* widgetHolder = view;
         Widget* widget = [widgetHolder widget];
         if (widget && widget->client())
             return [DOMElement _elementWithImpl:widget->client()->element(widget)];
@@ -1159,12 +1159,11 @@ static BOOL nowPrinting(WebCoreFrameBridge *self)
     return nil;
 }
 
-static HTMLInputElementImpl *inputElementFromDOMElement(DOMElement *element)
+static HTMLInputElementImpl* inputElementFromDOMElement(DOMElement* element)
 {
-    NodeImpl *node = [element _nodeImpl];
-    if (node->hasTagName(inputTag)) {
-        return static_cast<HTMLInputElementImpl *>(node);
-    }
+    NodeImpl* node = [element _nodeImpl];
+    if (node->hasTagName(inputTag))
+        return static_cast<HTMLInputElementImpl*>(node);
     return nil;
 }
 
index 239c72d9d18d930f3f1f8118d8dc67ee348ef3c0..0ca150dbf54b2d71e03ed0c6c409c37a0ad08a57 100644 (file)
@@ -38,7 +38,6 @@
 #include "cssproperties.h"
 #include "cssstyleselector.h"
 #include "cssvalues.h"
-#include "helper.h"
 #include "render_style.h"
 #include <qregexp.h>
 
index 53dbca9bf939acfada2da0ed6aba7b037361112e..cf5893f3dccb6e2fdb537083b93c60d4cba0b445 100644 (file)
@@ -31,7 +31,6 @@
 #include "csshelper.h"
 #include "cssproperties.h"
 #include "cssvalues.h"
-#include "helper.h"
 #include <KURL.h>
 #include <kxmlcore/Assertions.h>
 #include <stdlib.h>
index 7985f08023b31ec62e9d5cea7ae9871d1b163072..dc6902611bdde4c7f0706056ea46993ee5040f7d 100644 (file)
@@ -36,7 +36,6 @@
 #include "cssproperties.h"
 #include "cssvalues.h"
 #include "Font.h"
-#include "helper.h"
 #include "html_documentimpl.h"
 #include "htmlnames.h"
 #include "khtml_settings.h"
index 0ac50a92217fcd75ce6abae37c65d20c2d0392a2..d851efdebbaff13362d971bc6f868cf41de71c6b 100644 (file)
@@ -58,9 +58,8 @@
 #include "dom2_rangeimpl.h"
 #include "dom2_viewsimpl.h"
 #include "dom_xmlimpl.h"
-#include "ecma/kjs_binding.h"
-#include "ecma/kjs_proxy.h"
-#include "helper.h"
+#include "kjs_binding.h"
+#include "kjs_proxy.h"
 #include "html_baseimpl.h"
 #include "html_documentimpl.h"
 #include "html_headimpl.h"
index 8fe3d4eaf30f7c7864b6f5f50f2b78d0964062c5..7d5eb55cc6ae314167dd3c6c22a25fd9f858c04a 100644 (file)
@@ -36,7 +36,6 @@
 #include "dom2_rangeimpl.h"
 #include "dom2_viewsimpl.h"
 #include "dom_elementimpl.h"
-#include "helper.h"
 #include "htmlediting.h"
 #include "htmlnames.h"
 #include "render_flow.h"
index cfcc46d13b92ce99928b602d63a56fa4b5ce3588..c7e7fa99c1372984544386537a10ad09cbd7d4c5 100644 (file)
@@ -30,9 +30,9 @@
 #include "InlineTextBox.h"
 #include "QString.h"
 #include "RenderBlock.h"
+#include "TextBoundaries.h"
 #include "VisiblePosition.h"
 #include "dom_elementimpl.h"
-#include "helper.h"
 #include "htmlediting.h"
 #include "htmlnames.h"
 #include "visible_text.h"
@@ -247,7 +247,7 @@ VisiblePosition endOfWord(const VisiblePosition &c, EWordSide side)
 
 static unsigned previousWordPositionBoundary(const QChar *characters, unsigned length)
 {
-    return nextWordFromIndex(characters, length, length, false);
+    return findNextWordFromIndex(characters, length, length, false);
 }
 
 VisiblePosition previousWordPosition(const VisiblePosition &c)
@@ -257,7 +257,7 @@ VisiblePosition previousWordPosition(const VisiblePosition &c)
 
 static unsigned nextWordPositionBoundary(const QChar *characters, unsigned length)
 {
-    return nextWordFromIndex(characters, length, 0, true);
+    return findNextWordFromIndex(characters, length, 0, true);
 }
 
 VisiblePosition nextWordPosition(const VisiblePosition &c)
@@ -527,7 +527,7 @@ VisiblePosition endOfSentence(const VisiblePosition &c)
 
 static unsigned previousSentencePositionBoundary(const QChar *characters, unsigned length)
 {
-    return nextSentenceFromIndex(characters, length, length, false);
+    return findNextSentenceFromIndex(characters, length, length, false);
 }
 
 VisiblePosition previousSentencePosition(const VisiblePosition &c, int x)
@@ -537,7 +537,7 @@ VisiblePosition previousSentencePosition(const VisiblePosition &c, int x)
 
 static unsigned nextSentencePositionBoundary(const QChar *characters, unsigned length)
 {
-    return nextSentenceFromIndex(characters, length, 0, true);
+    return findNextSentenceFromIndex(characters, length, 0, true);
 }
 
 VisiblePosition nextSentencePosition(const VisiblePosition &c, int x)
index 25c76762b011668a5ba1f09c51288eb63db5cdd9..5ae4fd0efc13095670457a6390e878607599e030 100644 (file)
  */
 
 #include "config.h"
-#include <klocale.h>
-
-#include <PlugInInfoStore.h>
-
 #include "kjs_navigator.h"
-#include "kjs/lookup.h"
-#include "kjs_binding.h"
-#include "NodeImpl.h"
-#include "Frame.h"
 
-#include "KWQKCookieJar.h"
+#include "CookieJar.h"
+#include "Frame.h"
+#include "Language.h"
+#include "NodeImpl.h"
+#include "PlugInInfoStore.h"
+#include "kjs_binding.h"
 
 using namespace WebCore;
 
@@ -157,28 +154,18 @@ JSValue *Navigator::getValueProperty(ExecState *exec, int token) const
     return jsString("Mozilla");
   case AppName:
     // If we find "Mozilla" but not "(compatible, ...)" we are a real Netscape
-    if (userAgent.find(QString::fromLatin1("Mozilla")) >= 0 &&
-        userAgent.find(QString::fromLatin1("compatible")) == -1)
-    {
-      //kdDebug() << "appName -> Mozilla" << endl;
+    if (userAgent.find("Mozilla") >= 0 && userAgent.find("compatible") == -1)
       return jsString("Netscape");
-    }
-    if (userAgent.find(QString::fromLatin1("Microsoft")) >= 0 ||
-        userAgent.find(QString::fromLatin1("MSIE")) >= 0)
-    {
-      //kdDebug() << "appName -> IE" << endl;
+    if (userAgent.find("Microsoft") >= 0 || userAgent.find("MSIE") >= 0)
       return jsString("Microsoft Internet Explorer");
-    }
-    // FIXME: Should we define a fallback result here besides "Konqueror"?
     return jsUndefined();
   case AppVersion:
     // We assume the string is something like Mozilla/version (properties)
     return jsString(userAgent.mid(userAgent.find('/') + 1));
   case Product:
     // When acting normal, we pretend to be "Gecko".
-    if (userAgent.find("Mozilla/5.0") >= 0 && userAgent.find("compatible") == -1) {
+    if (userAgent.find("Mozilla/5.0") >= 0 && userAgent.find("compatible") == -1)
         return jsString("Gecko");
-    }
     // When spoofing as IE, we use jsUndefined().
     return jsUndefined();
   case ProductSub:
@@ -186,27 +173,24 @@ JSValue *Navigator::getValueProperty(ExecState *exec, int token) const
   case Vendor:
     return jsString("Apple Computer, Inc.");
   case Language:
-    return jsString(KLocale::language());
+    return jsString(defaultLanguage());
   case UserAgent:
     return jsString(userAgent);
   case Platform:
-    // yet another evil hack, but necessary to spoof some sites...
-    if ( (userAgent.find(QString::fromLatin1("Win"),0,false)>=0) )
-      return jsString(QString::fromLatin1("Win32"));
-    else if ( (userAgent.find(QString::fromLatin1("Macintosh"),0,false)>=0) ||
-              (userAgent.find(QString::fromLatin1("Mac_PowerPC"),0,false)>=0) )
-      return jsString(QString::fromLatin1("MacPPC"));
-    else
-      return jsString(QString::fromLatin1("X11"));
+    if (userAgent.find("Win", 0, false) >= 0)
+      return jsString("Win32");
+    if (userAgent.find("Macintosh", 0, false) >= 0 || userAgent.find("Mac_PowerPC", 0, false) >= 0)
+      return jsString("MacPPC");
+    // FIXME: What about Macintosh Intel?
+    return jsString("X11");
   case _Plugins:
     return new Plugins(exec);
   case _MimeTypes:
     return new MimeTypes(exec);
   case CookieEnabled:
-    return jsBoolean(KWQKCookieJar::cookieEnabled());
-  default:
-    return 0;
+    return jsBoolean(cookiesEnabled());
   }
+  return 0;
 }
 
 /*******************************************************************/
index 5e7065691d595f1028bef4089cdcf83747ad8e6f..a2ff7749071873cd7eff30cff605432f584e224e 100644 (file)
@@ -52,7 +52,6 @@
 #include "render_canvas.h"
 #include "xmlserializer.h"
 #include <kjs/collector.h>
-#include <klocale.h>
 #include "FrameTree.h"
 #include "khtml_settings.h"
 
index f90350d455cb8253be14cb6d5befd48e8fe97a68..5eed58c83c5e3acff4af14249ccf96d2e052310f 100644 (file)
@@ -145,8 +145,6 @@ static QCString encodeCString(const QCString& e)
     QCString encoded(( elen+e.contains( '\n' ) )*3+1);
     int enclen = 0;
 
-    //QCString orig(e.data(), e.size());
-
     for(int pos = 0; pos < elen; pos++) {
         unsigned char c = e[pos];
 
index d32a271383d5dad9c3d3572343b37ff4739e2e02..cec6bc44ec7545bb705615a688e685d0f157c707 100644 (file)
 
 #include "config.h"
 #include "HTMLInputElementImpl.h"
-#include "HTMLFormElementImpl.h"
-#include "html_imageimpl.h" // for HTMLImageLoader
-#include "dom2_eventsimpl.h"
-#include "FormDataList.h"
 
 #include "BeforeTextInsertedEventImpl.h"
-#include "cssproperties.h"
+#include "DocumentImpl.h"
+#include "EventNames.h"
+#include "FormDataList.h"
 #include "Frame.h"
-#include "render_form.h"
-#include "render_button.h"
+#include "HTMLFormElementImpl.h"
+#include "LocalizedStrings.h"
 #include "RenderTextField.h"
-#include "render_theme.h"
 #include "SelectionController.h"
-#include "DocumentImpl.h"
-
-#include <klocale.h>
-
-#include "EventNames.h"
+#include "cssproperties.h"
+#include "dom2_eventsimpl.h"
+#include "html_imageimpl.h"
 #include "htmlnames.h"
+#include "render_button.h"
+#include "render_form.h"
+#include "render_theme.h"
 
 using WebCore::ControlState;
 
index 40be21d288a0d9ff21709d2ad3cdbd19dbbe26a0..5ccda8f7605066a050943ed9292dc2f2cbc41fed 100644 (file)
 #include "config.h"
 #include "html_documentimpl.h"
 
+#include "CookieJar.h"
 #include "DocumentTypeImpl.h"
 #include "ExceptionCode.h"
 #include "Frame.h"
-#include "KWQKCookieJar.h"
 #include "css/css_stylesheetimpl.h"
 #include "css/cssstyleselector.h"
 #include "cssproperties.h"
@@ -107,12 +107,12 @@ DOMString HTMLDocumentImpl::lastModified() const
 
 DOMString HTMLDocumentImpl::cookie() const
 {
-    return KWQKCookieJar::cookie(URL());
+    return cookies(URL());
 }
 
-void HTMLDocumentImpl::setCookie( const DOMString & value )
+void HTMLDocumentImpl::setCookie(const String& value)
 {
-    return KWQKCookieJar::setCookie(URL(), m_policyBaseURL.qstring(), value.qstring());
+    setCookies(URL(), m_policyBaseURL.qstring(), value);
 }
 
 void HTMLDocumentImpl::setBody(HTMLElementImpl *_body, ExceptionCode& ec)
index fd9a02d5c098d4ec45b044bc749a7f0ae8c1a340..96b516a9f00741b19f8a734cedac05367ad166cd 100644 (file)
@@ -37,7 +37,6 @@
 #include "css_stylesheetimpl.h"
 #include "csshelper.h"
 #include "cssstyleselector.h"
-#include "helper.h"
 #include "html_documentimpl.h"
 #include "htmlnames.h"
 #include "kjs_proxy.h"
index 8be920a91ecfb3e7325b8648258fe05f71aa5d08..360fe3b108cf40256ce409515ff64fb902b2e3a8 100644 (file)
@@ -34,6 +34,7 @@
 #include "FrameView.h"
 #include "HTMLFormElementImpl.h"
 #include "HTMLIsIndexElementImpl.h"
+#include "LocalizedStrings.h"
 #include "cssproperties.h"
 #include "cssvalues.h"
 #include "TextImpl.h"
@@ -51,7 +52,6 @@
 #include "htmlfactory.h"
 #include "htmltokenizer.h"
 #include "render_object.h"
-#include <klocale.h>
 #include <kxmlcore/HashMap.h>
 #include <kxmlcore/HashSet.h>
 
index 0e07c49673ed3984b35d0a1822daf070a36c7636..e682e37565eae33aee1b9c95c1ff64279130eaed 100644 (file)
@@ -1464,11 +1464,6 @@ bool HTMLTokenizer::write(const SegmentedString &str, bool appendData)
             ++src;
         } else {
             state.setDiscardLF(false);
-#if QT_VERSION < 300
-            unsigned char row = src->row();
-            if ( row > 0x05 && row < 0x10 || row > 0xfd )
-                    currToken.complexText = true;
-#endif
             *dest++ = fixUpChar(*src);
             ++src;
         }
index 0b1d720af288ddb3b53b18f7d1da68fc3cbcb4c0..8c358dfd15bb9ee690f87b17b9015eca129ccca4 100644 (file)
@@ -26,7 +26,6 @@
 
 #include "htmlnames.h"
 #include <ctype.h>
-#include <klocale.h>
 #include <kxmlcore/Assertions.h>
 #include <qregexp.h>
 #include "TextEncoding.h"
diff --git a/WebCore/khtml/misc/helper.cpp b/WebCore/khtml/misc/helper.cpp
deleted file mode 100644 (file)
index b55dc03..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * This file is part of the CSS implementation for KDE.
- *
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * Copyright (C) 2004 Apple Computer, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- */
-
-#include "config.h"
-#include "helper.h"
-
-#include "KWQTextUtilities.h"
-
-namespace WebCore {
-
-void findWordBoundary(const QChar *chars, int len, int position, int *start, int *end)
-{
-    KWQFindWordBoundary(chars, len, position, start, end);
-}
-
-int nextWordFromIndex(const QChar *chars, int len, int position, bool forward)
-{
-    return KWQFindNextWordFromIndex(chars, len, position, forward);
-}
-
-void findSentenceBoundary(const QChar *chars, int len, int position, int *start, int *end)
-{
-    KWQFindSentenceBoundary(chars, len, position, start, end);
-}
-
-int nextSentenceFromIndex(const QChar *chars, int len, int position, bool forward)
-{
-    return KWQFindNextSentenceFromIndex(chars, len, position, forward);
-}
-
-}
diff --git a/WebCore/khtml/misc/helper.h b/WebCore/khtml/misc/helper.h
deleted file mode 100644 (file)
index 53ec9d3..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * This file is part of the CSS implementation for KDE.
- *
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * Copyright (C) 2004, 2006 Apple Computer, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- */
-
-#ifndef html_helper_h
-#define html_helper_h
-
-class QChar;
-
-namespace WebCore {
-    void findWordBoundary(const QChar*, int len, int position, int *start, int *end);
-    int nextWordFromIndex(const QChar*, int len, int position, bool forward);
-    void findSentenceBoundary(const QChar*, int len, int position, int *start, int *end);
-    int nextSentenceFromIndex(const QChar*, int len, int position, bool forward);
-}
-
-#endif
index 980d2bb9dbed176aab8a3427fbe0bfd2b904e38c..fae4139accc619c252fc9343d832f9f02c497b28 100644 (file)
@@ -24,8 +24,7 @@
 #if SVG_SUPPORT
 #include <assert.h>
 
-#include <KURL.h>
-#include <klocale.h>
+#include "KURL.h"
 
 #include <kdom/Helper.h>
 #include "Shared.h"
index b20a65b51dab88dbfe839486db2949efd3b3f3d4..4c6795dd5a96d09c075bdf336397ed3c5368fe87 100644 (file)
 
 #include "config.h"
 #if SVG_SUPPORT
-#include <klocale.h>
-
-#include <kdom/core/AttrImpl.h>
-
-#include "SVGNames.h"
-#include "SVGHelper.h"
 #include "SVGTestsImpl.h"
+
+#include "Language.h"
+#include "SVGDOMImplementationImpl.h"
 #include "SVGElementImpl.h"
+#include "SVGHelper.h"
+#include "SVGNames.h"
 #include "SVGStringListImpl.h"
-#include "SVGDOMImplementationImpl.h"
+#include <kdom/core/AttrImpl.h>
 
-using namespace WebCore;
+namespace WebCore {
 
 SVGTestsImpl::SVGTestsImpl()
 {
@@ -74,12 +73,9 @@ bool SVGTestsImpl::isValid() const
     }
 
     list = systemLanguage();
-    for(unsigned long i = 0;i < list->numberOfItems();i++)
-    {
-        DOMString value = DOMString(list->getItem(i));
-        if(value.isEmpty() || value.qstring() != (KLocale::language()).left(2))
+    for (unsigned long i = 0; i < list->numberOfItems(); i++)
+        if (!equal(list->getItem(i), defaultLanguage().substring(0, 2).impl()))
             return false;
-    }
 
     list = requiredExtensions();
     if(list->numberOfItems() > 0)
@@ -105,6 +101,7 @@ bool SVGTestsImpl::parseMappedAttribute(MappedAttributeImpl *attr)
     return false;
 }
 
+}
+
 // vim:ts=4:noet
 #endif // SVG_SUPPORT
-
index 1e141def94accea3111ea0053709a27e91602232..9f8c554224c95ff2ec18b27ad6f50ec0accaf68f 100644 (file)
 #import "KWQExceptions.h"
 #import "FoundationExtras.h"
 #import "KWQLineEdit.h"
-#import "KWQView.h"
 #import "MacFrame.h"
 #import "WebCoreFrameBridge.h"
 #import "WebCoreTextRenderer.h"
 #import "WebCoreTextRendererFactory.h"
+#import "WebCoreWidgetHolder.h"
 #import "render_form.h"
 #import <kxmlcore/Assertions.h>
 
@@ -53,7 +53,7 @@ enum {
     minimumTextWidth
 };
 
-@interface KWQPopUpButtonCell : NSPopUpButtonCell <KWQWidgetHolder>
+@interface KWQPopUpButtonCell : NSPopUpButtonCell <WebCoreWidgetHolder>
 {
     QComboBox *box;
     NSWritingDirection baseWritingDirection;
@@ -64,7 +64,7 @@ enum {
 - (NSWritingDirection)baseWritingDirection;
 @end
 
-@interface KWQPopUpButton : NSPopUpButton <KWQWidgetHolder>
+@interface KWQPopUpButton : NSPopUpButton <WebCoreWidgetHolder>
 {
     BOOL inNextValidKeyView;
     BOOL populatingMenu;
index 367636d701cb23b814bf242517935e825bb02be8..32dbfcc2fc4d83143d2274ccdb46be539292974c 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#include "config.h"
+#import "config.h"
 #import "KWQKSSLKeyGen.h"
 
-#import "KWQKURL.h"
+#import "KURL.h"
 #import "QString.h"
 #import "WebCoreKeyGenerator.h"
 
diff --git a/WebCore/kwq/KWQKURL.h b/WebCore/kwq/KWQKURL.h
deleted file mode 100644 (file)
index cf53e8e..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#ifndef KURL_H_
-#define KURL_H_
-
-#include "QString.h"
-
-class QTextCodec;
-
-#ifdef __OBJC__
-@class NSData;
-@class NSURL;
-#else
-class NSData;
-class NSURL;
-#endif
-
-class KURL {
-public:
-    KURL();
-    KURL(const char *);
-    KURL(const KURL &, const QString &, const QTextCodec * = 0);
-    KURL(const QString &);
-    KURL(NSURL *);
-    
-    bool isEmpty() const { return urlString.isEmpty(); } 
-    bool isMalformed() const { return !m_isValid; }
-    bool isValid() const { return m_isValid; }
-    bool hasPath() const;
-
-    QString url() const { return urlString; }
-
-    QString protocol() const;
-    QString host() const;
-    unsigned short int port() const;
-    QString user() const;
-    QString pass() const;
-    QString path() const;
-    QString query() const;
-    QString ref() const;
-    bool hasRef() const;
-
-    QString encodedHtmlRef() const { return ref(); }
-
-    void setProtocol(const QString &);
-    void setHost(const QString &);
-    void setPort(unsigned short int);
-    void setUser(const QString &);
-    void setPass(const QString &);
-    void setPath(const QString &);
-    void setQuery(const QString &);
-    void setRef(const QString &);
-
-    QString prettyURL() const;
-    
-#if __APPLE__
-    CFURLRef createCFURL() const;
-    NSURL *getNSURL() const;
-#endif
-
-    bool isLocalFile() const;
-
-    static QString decode_string(const QString &, const QTextCodec * = 0);
-    static QString encode_string(const QString &);
-    
-    friend bool operator==(const KURL &, const KURL &);
-
-private:
-    bool isHierarchical() const;
-    void parse(const char *url, const QString *originalString);
-
-    QString urlString;
-    bool m_isValid;
-    int schemeEndPos;
-    int userStartPos;
-    int userEndPos;
-    int passwordEndPos;
-    int hostEndPos;
-    int portEndPos;
-    int pathEndPos;
-    int queryEndPos;
-    int fragmentEndPos;
-    
-    // True if both URLs are the same.
-    friend bool urlcmp(const QString &URLA, const QString &URLB, bool ignoreTrailingSlash, bool ignoreRef);
-};
-
-#endif
diff --git a/WebCore/kwq/KWQKURL.mm b/WebCore/kwq/KWQKURL.mm
deleted file mode 100644 (file)
index b3d3578..0000000
+++ /dev/null
@@ -1,1547 +0,0 @@
-/*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#include "config.h"
-#import "KWQKURL.h"
-
-#import <kxmlcore/Assertions.h>
-#import "FoundationExtras.h"
-#import "KWQRegExp.h"
-#import "KWQTextCodec.h"
-#import <kxmlcore/Vector.h>
-#import <unicode/uidna.h>
-#import <utility>
-
-using std::pair;
-using std::make_pair;
-
-// The simple Cocoa calls to NSString, NSURL and NSData can't throw so
-// no need to block NSExceptions here.
-
-typedef enum {
-    // alpha 
-    SchemeFirstChar = 1 << 0,
-
-    // ( alpha | digit | "+" | "-" | "." )
-    SchemeChar = 1 << 1,
-
-    // mark        = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
-    // unreserved  = alphanum | mark
-    // ( unreserved | escaped | ";" | ":" | "&" | "=" | "+" | "$" | "," )
-    UserInfoChar = 1 << 2,
-
-    // alnum | "." | "-" | "%"
-    // The above is what the specification says, but we are lenient to
-    // match existing practice and also allow:
-    // "_"
-    HostnameChar = 1 << 3,
-
-    // hexdigit | ":" | "%"
-    IPv6Char = 1 << 4,
-
-    // "#" | "?" | "/" | nul
-    PathSegmentEndChar = 1 << 5,
-
-    // digit | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f"
-    HexDigitChar = 1 << 6,
-
-    // not allowed in path
-    BadChar = 1 << 7
-
-} URLCharacterClasses;
-
-static const char hexDigits[17] = "0123456789ABCDEF";
-
-static const unsigned char characterClassTable[256] = {
-    /* 0 nul */ PathSegmentEndChar,    /* 1 soh */ BadChar,
-    /* 2 stx */ BadChar,    /* 3 etx */ BadChar,    
-    /* 4 eot */ BadChar,    /* 5 enq */ BadChar,    /* 6 ack */ BadChar,    /* 7 bel */ BadChar,
-    /* 8 bs */ BadChar,     /* 9 ht */ BadChar,    /* 10 nl */ BadChar,    /* 11 vt */ BadChar,
-    /* 12 np */ BadChar,    /* 13 cr */ BadChar,    /* 14 so */ BadChar,    /* 15 si */ BadChar,
-    /* 16 dle */ BadChar,   /* 17 dc1 */ BadChar,   /* 18 dc2 */ BadChar,   /* 19 dc3 */ BadChar,
-    /* 20 dc4 */ BadChar,   /* 21 nak */ BadChar,   /* 22 syn */ BadChar,   /* 23 etb */ BadChar,
-    /* 24 can */ BadChar,   /* 25 em */ BadChar,    /* 26 sub */ BadChar,   /* 27 esc */ BadChar,
-    /* 28 fs */ BadChar,    /* 29 gs */ BadChar,    /* 30 rs */ BadChar,    /* 31 us */ BadChar,
-    /* 32 sp */ BadChar,    /* 33  ! */ UserInfoChar,
-    /* 34  " */ BadChar,    /* 35  # */ PathSegmentEndChar | BadChar,    
-    /* 36  $ */ UserInfoChar,    /* 37  % */ UserInfoChar | HostnameChar | IPv6Char | BadChar,
-    /* 38  & */ UserInfoChar,    /* 39  ' */ UserInfoChar,
-    /* 40  ( */ UserInfoChar,    /* 41  ) */ UserInfoChar,    
-    /* 42  * */ UserInfoChar,    /* 43  + */ SchemeChar | UserInfoChar,
-    /* 44  , */ UserInfoChar,    
-    /* 45  - */ SchemeChar | UserInfoChar | HostnameChar, 
-    /* 46  . */ SchemeChar | UserInfoChar | HostnameChar,   
-    /* 47  / */ PathSegmentEndChar,
-    /* 48  0 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char, 
-    /* 49  1 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,    
-    /* 50  2 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char, 
-    /* 51  3 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 52  4 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char, 
-    /* 53  5 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 54  6 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char, 
-    /* 55  7 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 56  8 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char, 
-    /* 57  9 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 58  : */ UserInfoChar | IPv6Char,    /* 59  ; */ UserInfoChar,
-    /* 60  < */ BadChar,    /* 61  = */ UserInfoChar,
-    /* 62  > */ BadChar,    /* 63  ? */ PathSegmentEndChar | BadChar,
-    /* 64  @ */ 0,
-    /* 65  A */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,    
-    /* 66  B */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 67  C */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 68  D */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 69  E */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 70  F */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 71  G */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 72  H */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 73  I */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 74  J */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 75  K */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 76  L */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 77  M */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 78  N */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 79  O */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 80  P */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 81  Q */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 82  R */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 83  S */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 84  T */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 85  U */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 86  V */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 87  W */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 88  X */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar, 
-    /* 89  Y */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 90  Z */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 91  [ */ 0,
-    /* 92  \ */ 0,    /* 93  ] */ 0,
-    /* 94  ^ */ 0,
-    /* 95  _ */ UserInfoChar | HostnameChar,
-    /* 96  ` */ 0,
-    /* 97  a */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 98  b */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char, 
-    /* 99  c */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 100  d */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char, 
-    /* 101  e */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 102  f */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char, 
-    /* 103  g */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 104  h */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar, 
-    /* 105  i */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 106  j */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar, 
-    /* 107  k */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 108  l */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar, 
-    /* 109  m */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 110  n */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar, 
-    /* 111  o */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 112  p */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar, 
-    /* 113  q */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 114  r */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar, 
-    /* 115  s */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 116  t */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar, 
-    /* 117  u */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 118  v */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar, 
-    /* 119  w */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 120  x */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar, 
-    /* 121  y */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar,
-    /* 122  z */ SchemeFirstChar | SchemeChar | UserInfoChar | HostnameChar, 
-    /* 123  { */ 0,
-    /* 124  | */ 0,   /* 125  } */ 0,   /* 126  ~ */ UserInfoChar,   /* 127 del */ BadChar,
-    /* 128 */ BadChar, /* 129 */ BadChar, /* 130 */ BadChar, /* 131 */ BadChar,
-    /* 132 */ BadChar, /* 133 */ BadChar, /* 134 */ BadChar, /* 135 */ BadChar,
-    /* 136 */ BadChar, /* 137 */ BadChar, /* 138 */ BadChar, /* 139 */ BadChar,
-    /* 140 */ BadChar, /* 141 */ BadChar, /* 142 */ BadChar, /* 143 */ BadChar,
-    /* 144 */ BadChar, /* 145 */ BadChar, /* 146 */ BadChar, /* 147 */ BadChar,
-    /* 148 */ BadChar, /* 149 */ BadChar, /* 150 */ BadChar, /* 151 */ BadChar,
-    /* 152 */ BadChar, /* 153 */ BadChar, /* 154 */ BadChar, /* 155 */ BadChar,
-    /* 156 */ BadChar, /* 157 */ BadChar, /* 158 */ BadChar, /* 159 */ BadChar,
-    /* 160 */ BadChar, /* 161 */ BadChar, /* 162 */ BadChar, /* 163 */ BadChar,
-    /* 164 */ BadChar, /* 165 */ BadChar, /* 166 */ BadChar, /* 167 */ BadChar,
-    /* 168 */ BadChar, /* 169 */ BadChar, /* 170 */ BadChar, /* 171 */ BadChar,
-    /* 172 */ BadChar, /* 173 */ BadChar, /* 174 */ BadChar, /* 175 */ BadChar,
-    /* 176 */ BadChar, /* 177 */ BadChar, /* 178 */ BadChar, /* 179 */ BadChar,
-    /* 180 */ BadChar, /* 181 */ BadChar, /* 182 */ BadChar, /* 183 */ BadChar,
-    /* 184 */ BadChar, /* 185 */ BadChar, /* 186 */ BadChar, /* 187 */ BadChar,
-    /* 188 */ BadChar, /* 189 */ BadChar, /* 190 */ BadChar, /* 191 */ BadChar,
-    /* 192 */ BadChar, /* 193 */ BadChar, /* 194 */ BadChar, /* 195 */ BadChar,
-    /* 196 */ BadChar, /* 197 */ BadChar, /* 198 */ BadChar, /* 199 */ BadChar,
-    /* 200 */ BadChar, /* 201 */ BadChar, /* 202 */ BadChar, /* 203 */ BadChar,
-    /* 204 */ BadChar, /* 205 */ BadChar, /* 206 */ BadChar, /* 207 */ BadChar,
-    /* 208 */ BadChar, /* 209 */ BadChar, /* 210 */ BadChar, /* 211 */ BadChar,
-    /* 212 */ BadChar, /* 213 */ BadChar, /* 214 */ BadChar, /* 215 */ BadChar,
-    /* 216 */ BadChar, /* 217 */ BadChar, /* 218 */ BadChar, /* 219 */ BadChar,
-    /* 220 */ BadChar, /* 221 */ BadChar, /* 222 */ BadChar, /* 223 */ BadChar,
-    /* 224 */ BadChar, /* 225 */ BadChar, /* 226 */ BadChar, /* 227 */ BadChar,
-    /* 228 */ BadChar, /* 229 */ BadChar, /* 230 */ BadChar, /* 231 */ BadChar,
-    /* 232 */ BadChar, /* 233 */ BadChar, /* 234 */ BadChar, /* 235 */ BadChar,
-    /* 236 */ BadChar, /* 237 */ BadChar, /* 238 */ BadChar, /* 239 */ BadChar,
-    /* 240 */ BadChar, /* 241 */ BadChar, /* 242 */ BadChar, /* 243 */ BadChar,
-    /* 244 */ BadChar, /* 245 */ BadChar, /* 246 */ BadChar, /* 247 */ BadChar,
-    /* 248 */ BadChar, /* 249 */ BadChar, /* 250 */ BadChar, /* 251 */ BadChar,
-    /* 252 */ BadChar, /* 253 */ BadChar, /* 254 */ BadChar, /* 255 */ BadChar
-};
-
-static int copyPathRemovingDots(char *dst, const char *src, int srcStart, int srcEnd);
-static char *encodeRelativeString(const KURL &base, const QString &rel, const QTextCodec *codec);
-static QString substituteBackslashes(const QString &string);
-
-static inline bool isSchemeFirstChar(unsigned char c) { return characterClassTable[c] & SchemeFirstChar; }
-static inline bool isSchemeChar(unsigned char c) { return characterClassTable[c] & SchemeChar; }
-static inline bool isUserInfoChar(unsigned char c) { return characterClassTable[c] & UserInfoChar; }
-static inline bool isHostnameChar(unsigned char c) { return characterClassTable[c] & HostnameChar; }
-static inline bool isIPv6Char(unsigned char c) { return characterClassTable[c] & IPv6Char; }
-static inline bool isPathSegmentEndChar(unsigned char c) { return characterClassTable[c] & PathSegmentEndChar; }
-static inline bool isBadChar(unsigned char c) { return characterClassTable[c] & BadChar; }
-static inline bool isHexDigit(unsigned char c) { return characterClassTable[c] & HexDigitChar; }
-
-static inline int hexDigitValue(unsigned char c)
-{
-    ASSERT(isHexDigit(c));
-    if (c < 'A')
-        return c - '0';
-    return (c - 'A' + 10) & 0xF; // handle both upper and lower case without a branch
-}
-
-// KURL
-
-KURL::KURL() : m_isValid(false)
-{
-}
-
-KURL::KURL(const char *url)
-{
-    if (url && url[0] == '/') {
-         // 5 for "file:", 1 for terminator
-        size_t urlLength = strlen(url) + 1;
-        Vector<char, 2048> buffer(urlLength + 5);
-        buffer[0] = 'f';
-        buffer[1] = 'i';
-        buffer[2] = 'l';
-        buffer[3] = 'e';
-        buffer[4] = ':';
-        memcpy(&buffer[5], url, urlLength);
-        parse(buffer, 0);
-    } else
-        parse(url, 0);
-}
-
-KURL::KURL(const QString &url)
-{
-    if (!url.isEmpty() && url[0] == '/') {
-        // 5 for "file:", 1 for terminator
-        Vector<char, 2048> buffer(url.length() + 6);
-        buffer[0] = 'f';
-        buffer[1] = 'i';
-        buffer[2] = 'l';
-        buffer[3] = 'e';
-        buffer[4] = ':';
-        url.copyLatin1(&buffer[5]);
-        parse(buffer, 0);
-    } else
-        parse(url.ascii(), &url);
-}
-
-KURL::KURL(NSURL *url)
-{
-    if (url) {
-        CFIndex bytesLength = CFURLGetBytes((CFURLRef)url, 0, 0);
-        Vector<char, 2048> buffer(bytesLength + 6);  // 5 for "file:", 1 for NUL terminator
-        char *bytes = &buffer[5];
-        CFURLGetBytes((CFURLRef)url, (UInt8 *)bytes, bytesLength);
-        bytes[bytesLength] = '\0';
-        if (bytes[0] == '/') {
-            buffer[0] = 'f';
-            buffer[1] = 'i';
-            buffer[2] = 'l';
-            buffer[3] = 'e';
-            buffer[4] = ':';
-            parse(buffer, 0);
-        } else
-            parse(bytes, 0);
-    } else
-        parse("", 0);
-}
-
-KURL::KURL(const KURL &base, const QString &relative, const QTextCodec *codec)
-{
-    // Allow at lest absolute URLs to resolve against an empty URL.
-    if (!base.m_isValid && !base.isEmpty()) {
-        m_isValid = false;
-        return;
-    }
-    
-    bool absolute = false;
-
-    // for compatibility with Win IE, we must treat backslashes as if they were slashes
-    QString substitutedRelative;
-    bool containsBackslash = relative.contains('\\');
-    if (containsBackslash) {
-        substitutedRelative = substituteBackslashes(relative);
-    }
-
-    const QString &rel = containsBackslash ? substitutedRelative : relative;
-    
-    bool allASCII = rel.isAllASCII();
-    char *strBuffer;
-    const char *str;
-    if (allASCII) {
-        strBuffer = 0;
-        str = rel.ascii();
-    } else {
-        strBuffer = encodeRelativeString(base, rel, codec);
-        str = strBuffer;
-    }
-    
-    // workaround for sites that put leading whitespace whitespace on
-    // URL references
-    bool strippedStart = false;
-    while (*str == ' ') {
-        str++;
-        strippedStart = true;
-    }
-
-    // workaround for trailing whitespace - a bit more complicated cause we have to copy
-    // it would be even better to replace null-termination with a length parameter
-    int len = strlen(str);
-    int charsToChopOffEnd = 0;
-    for (int pos = len - 1; pos >= 0 && str[pos] == ' '; pos--) {
-        charsToChopOffEnd++;
-    }
-    if (charsToChopOffEnd > 0) {
-        char *newStrBuffer = (char *)fastMalloc((len + 1) - charsToChopOffEnd);
-        strncpy(newStrBuffer, str, len - charsToChopOffEnd);
-        newStrBuffer[len - charsToChopOffEnd] = '\0';
-        fastFree(strBuffer);
-        strBuffer = newStrBuffer;
-        str = strBuffer;
-    }
-
-    // According to the RFC, the reference should be interpreted as an
-    // absolute URI if possible, using the "leftmost, longest"
-    // algorithm. If the URI reference is absolute it will have a
-    // scheme, meaning that it will have a colon before the first
-    // non-scheme element.
-    const char *p = str;
-    if (isSchemeFirstChar(*p)) {
-        ++p;
-        while (isSchemeChar(*p)) {
-            ++p;
-        }
-        if (*p == ':') {
-            if (p[1] != '/' && base.protocol().lower() == QString(str, p - str).lower() && base.isHierarchical())
-                str = p + 1;
-            else
-                absolute = true;
-        }
-    }
-
-    if (absolute) {
-        parse(str, (allASCII && !strippedStart && (charsToChopOffEnd == 0)) ? &rel : 0);
-    } else {
-        // if the base is invalid, just append the relative
-        // portion. The RFC does not specify what to do in this case.
-        if (!base.m_isValid) {
-            QString newURL = base.urlString + str;
-            parse(newURL.ascii(), &newURL);
-            if (strBuffer) {
-                fastFree(strBuffer);
-            }
-            return;
-        }
-
-        switch(str[0]) {
-        case '\0':
-            // the reference must be empty - the RFC says this is a
-            // reference to the same document
-            {
-                *this = base;
-                break;
-            }
-        case '#':
-            // must be fragment-only reference
-            {
-                QString newURL = base.urlString.left(base.queryEndPos) + str;
-                parse(newURL.ascii(), &newURL);
-                break;
-            }
-        case '?':
-            // query-only reference, special case needed for non-URL results
-            {
-                QString newURL = base.urlString.left(base.pathEndPos) + str;
-                parse(newURL.ascii(), &newURL);
-                break;
-            }
-        case '/':
-            // must be net-path or absolute-path reference
-            {
-                if (str[1] == '/') {
-                    // net-path
-                    QString newURL = base.urlString.left(base.schemeEndPos + 1) + str;
-                    parse(newURL.ascii(), &newURL);
-                } else {
-                    // abs-path
-                    QString newURL = base.urlString.left(base.portEndPos) + str;
-                    parse(newURL.ascii(), &newURL);
-                }
-                break;
-            }
-        default:
-            {
-                // must be relative-path reference
-
-                // Base part plus relative part plus one possible slash added in between plus terminating \0 byte.
-                Vector<char, 2048> buffer(base.pathEndPos + 1 + strlen(str) + 1);
-
-                char *bufferPos = buffer;
-                
-                // first copy everything before the path from the base
-                const char *baseString = base.urlString.ascii();
-                const char *baseStringStart = baseString;
-                const char *pathStart = baseStringStart + base.portEndPos;
-                while (baseStringStart < pathStart) {
-                    *bufferPos++ = *baseStringStart++;
-                }
-                char *bufferPathStart = bufferPos;
-
-                // now copy the base path 
-                const char *baseStringEnd = baseString + base.pathEndPos;
-                
-                // go back to the last slash
-                while (baseStringEnd > baseStringStart && baseStringEnd[-1] != '/') {
-                    baseStringEnd--;
-                }
-                
-                if (baseStringEnd == baseStringStart) {
-                    // no path in base, add a path separator if necessary
-                    if (base.schemeEndPos + 1 != base.pathEndPos && *str != '\0' && *str != '?' && *str != '#') {
-                        *bufferPos++ = '/';
-                    }
-                } else {
-                    bufferPos += copyPathRemovingDots(bufferPos, baseStringStart, 0, baseStringEnd - baseStringStart);
-                }
-
-                const char *relStringStart = str;
-                const char *relStringPos = relStringStart;
-                
-                while (*relStringPos != '\0' && *relStringPos != '?' && *relStringPos != '#') {
-                    if (relStringPos[0] == '.' && bufferPos[-1] == '/') {
-                        if (isPathSegmentEndChar(relStringPos[1])) {
-                            // skip over "." segment
-                            relStringPos += 1;
-                            if (relStringPos[0] == '/') {
-                                relStringPos++;
-                            }
-                            continue;
-                        } else if (relStringPos[1] == '.' && isPathSegmentEndChar(relStringPos[2])) {
-                            // skip over ".." segment and rewind the last segment
-                            // the RFC leaves it up to the app to decide what to do with excess
-                            // ".." segments - we choose to drop them since some web content
-                            // relies on this.
-                            relStringPos += 2;
-                            if (relStringPos[0] == '/') {
-                                relStringPos++;
-                            }
-                            if (bufferPos > bufferPathStart + 1) {
-                                bufferPos--;
-                            }
-                            while (bufferPos > bufferPathStart + 1  && bufferPos[-1] != '/') {
-                                bufferPos--;
-                            }
-                            continue;
-                        }
-                    }
-                    
-                    *bufferPos = *relStringPos;
-                    relStringPos++;
-                    bufferPos++;
-                }
-
-                // all done with the path work, now copy any remainder
-                // of the relative reference; this will also add a null terminator
-                strcpy(bufferPos, relStringPos);
-
-                parse(buffer, 0);
-                
-                ASSERT(strlen(buffer) + 1 <= buffer.size());
-                break;
-            }
-        }
-    }
-    
-    if (strBuffer) {
-        fastFree(strBuffer);
-    }
-}
-
-bool KURL::hasPath() const
-{
-    return m_isValid && pathEndPos != portEndPos;
-}
-
-QString KURL::protocol() const
-{
-    if (!m_isValid) {
-        return QString();
-    }
-
-    return urlString.left(schemeEndPos);
-}
-
-QString KURL::host() const
-{
-    if (!m_isValid) {
-        return QString();
-    }
-
-    int start = (passwordEndPos == userStartPos) ? passwordEndPos : passwordEndPos + 1;
-    return decode_string(urlString.mid(start, hostEndPos - start));
-}
-
-unsigned short int KURL::port() const
-{
-    if (!m_isValid) {
-        return 0;
-    }
-
-    if (hostEndPos != portEndPos) {
-        bool ok;
-        unsigned short result = urlString.mid(hostEndPos + 1, portEndPos - hostEndPos - 1).toUShort(&ok);
-        if (!ok) {
-            result = 0;
-        }
-        return result;
-    }
-
-    return 0;
-}
-
-QString KURL::pass() const
-{
-    if (!m_isValid) {
-        return QString();
-    }
-
-    if (passwordEndPos == userEndPos) {
-        return QString();
-    }
-
-    return decode_string(urlString.mid(userEndPos + 1, passwordEndPos - userEndPos - 1)); 
-}
-
-QString KURL::user() const
-{
-    if (!m_isValid) {
-        return QString();
-    }
-
-    return decode_string(urlString.mid(userStartPos, userEndPos - userStartPos));
-}
-
-QString KURL::ref() const
-{
-    if (!m_isValid || fragmentEndPos == queryEndPos) {
-        return QString();
-    }
-
-    return urlString.mid(queryEndPos + 1, fragmentEndPos - (queryEndPos + 1));
-}
-
-bool KURL::hasRef() const
-{
-    return m_isValid && fragmentEndPos != queryEndPos;
-}
-
-QString KURL::query() const
-{
-    if (!m_isValid) {
-        return QString();
-    }
-
-    return urlString.mid(pathEndPos, queryEndPos - pathEndPos); 
-}
-
-QString KURL::path() const
-{
-    if (!m_isValid) {
-        return QString();
-    }
-
-    return decode_string(urlString.mid(portEndPos, pathEndPos - portEndPos)); 
-}
-
-void KURL::setProtocol(const QString &s)
-{
-    if (!m_isValid) {
-        QString newURL = s + ":" + urlString;
-        parse(newURL.ascii(), &newURL);
-        return;
-    }
-
-    QString newURL = s + urlString.mid(schemeEndPos);
-    parse(newURL.ascii(), &newURL);
-}
-
-void KURL::setHost(const QString &s)
-{
-    if (m_isValid) {
-        bool slashSlashNeeded = userStartPos == schemeEndPos + 1;
-        int hostStart = (passwordEndPos == userStartPos) ? passwordEndPos : passwordEndPos + 1;
-        
-        QString newURL = urlString.left(hostStart) + (slashSlashNeeded ? "//" : QString()) + s + urlString.mid(hostEndPos);
-        parse(newURL.ascii(), &newURL);
-    }
-}
-
-void KURL::setPort(unsigned short i)
-{
-    if (m_isValid) {
-        bool colonNeeded = portEndPos == hostEndPos;
-        int portStart = (colonNeeded ? hostEndPos : hostEndPos + 1);
-        QString newURL = urlString.left(portStart) + (colonNeeded ? ":" : QString()) + QString::number(i) + urlString.mid(portEndPos);
-        parse(newURL.ascii(), &newURL);
-    }
-}
-
-void KURL::setUser(const QString &user)
-{
-    if (m_isValid) {
-        QString u;
-        int end = userEndPos;
-        if (!user.isEmpty()) {
-            // Untested code, but this is never used.
-            ASSERT_NOT_REACHED();
-#if 0
-            u = user;
-            if (userStartPos == schemeEndPos + 1) {
-                u = "//" + u;
-            }
-            // Add '@' if we didn't have one before.
-            if (end == hostEndPos || (end == passwordEndPos && urlString[end] != '@')) {
-                u += '@';
-            }
-#endif
-        } else {
-            // Remove '@' if we now have neither user nor password.
-            if (userEndPos == passwordEndPos && end != hostEndPos && urlString[end] == '@') {
-                end += 1;
-            }
-        }
-        const QString newURL = urlString.left(userStartPos) + u + urlString.mid(end);
-        parse(newURL.ascii(), &newURL);
-    }
-}
-
-void KURL::setPass(const QString &password)
-{
-    if (m_isValid) {
-        QString p;
-        int end = passwordEndPos;
-        if (!password.isEmpty()) {
-            // Untested code, but this is never used.
-            ASSERT_NOT_REACHED();
-#if 0
-            p = ':' + password + '@';
-            if (userEndPos == schemeEndPos + 1) {
-                p = "//" + p;
-            }
-            // Eat the existing '@' since we are going to add our own.
-            if (end != hostEndPos && urlString[end] == '@') {
-                end += 1;
-            }
-#endif
-        } else {
-            // Remove '@' if we now have neither user nor password.
-            if (userStartPos == userEndPos && end != hostEndPos && urlString[end] == '@') {
-                end += 1;
-            }
-        }
-        const QString newURL = urlString.left(userEndPos) + p + urlString.mid(end);
-        parse(newURL.ascii(), &newURL);
-    }
-}
-
-void KURL::setRef(const QString &s)
-{
-    if (m_isValid) {
-        QString newURL = urlString.left(queryEndPos) + (s.isEmpty() ? QString() : "#" + s);
-        parse(newURL.ascii(), &newURL);
-    }
-}
-
-void KURL::setQuery(const QString &query)
-{
-    if (m_isValid) {
-        QString q;
-        if (!query.isEmpty() && query[0] != '?') {
-            q = "?" + query;
-        } else {
-            q = query;
-        }
-
-        QString newURL = urlString.left(pathEndPos) + q + urlString.mid(queryEndPos);
-        parse(newURL.ascii(), &newURL);
-    }
-}
-
-void KURL::setPath(const QString &s)
-{
-    if (m_isValid) {
-        QString newURL = urlString.left(portEndPos) + encode_string(s) + urlString.mid(pathEndPos);
-        parse(newURL.ascii(), &newURL);
-    }
-}
-
-QString KURL::prettyURL() const
-{
-    if (!m_isValid) {
-        return urlString;
-    }
-
-    QString result = protocol() + ":";
-
-    QString authority;
-
-    if (hostEndPos != passwordEndPos) {
-        if (userEndPos != userStartPos) {
-            authority += user();
-            authority += "@";
-        }
-        authority += host();
-        if (port() != 0) {
-            authority += ":";
-            authority += QString::number(port());
-        }
-    }
-
-    if (!authority.isEmpty()) {
-        result += "//" + authority;
-    }
-
-    result += path();
-    result += query();
-
-    if (fragmentEndPos != queryEndPos) {
-        result += "#" + ref();
-    }
-
-    return result;
-}
-
-QString KURL::decode_string(const QString &urlString, const QTextCodec *codec)
-{
-    static const QTextCodec UTF8Codec(kCFStringEncodingUTF8);
-
-    QString result("");
-
-    Vector<char, 2048> buffer(0);
-
-    int length = urlString.length();
-    int decodedPosition = 0;
-    int searchPosition = 0;
-    int encodedRunPosition;
-    while ((encodedRunPosition = urlString.find('%', searchPosition)) >= 0) {
-        // Find the sequence of %-escape codes.
-        int encodedRunEnd = encodedRunPosition;
-        while (length - encodedRunEnd >= 3
-                && urlString[encodedRunEnd] == '%'
-                && isHexDigit(urlString[encodedRunEnd + 1].latin1())
-                && isHexDigit(urlString[encodedRunEnd + 2].latin1()))
-            encodedRunEnd += 3;
-        if (encodedRunEnd == encodedRunPosition) {
-            ++searchPosition;
-            continue;
-        }
-        searchPosition = encodedRunEnd;
-
-        // Copy the entire %-escape sequence into an 8-bit buffer.
-        int encodedRunLength = encodedRunEnd - encodedRunPosition;
-        buffer.clear();
-        buffer.resize(encodedRunLength + 1);
-        urlString.copyLatin1(buffer, encodedRunPosition, encodedRunLength);
-
-        // Decode the %-escapes into bytes.
-        char *p = buffer;
-        const char *q = buffer;
-        while (*q) {
-            *p++ = (hexDigitValue(q[1]) << 4) | hexDigitValue(q[2]);
-            q += 3;
-        }
-
-        // Decode the bytes into Unicode characters.
-        QString decoded = (codec ? codec : &UTF8Codec)->toUnicode(buffer, p - buffer);
-        if (decoded.isEmpty()) {
-            continue;
-        }
-
-        // Build up the string with what we just skipped and what we just decoded.
-        result.append(urlString.mid(decodedPosition, encodedRunPosition - decodedPosition));
-        result.append(decoded);
-        decodedPosition = encodedRunEnd;
-    }
-
-    result.append(urlString.mid(decodedPosition, length - decodedPosition));
-    return result;
-}
-
-bool KURL::isLocalFile() const
-{
-    // FIXME - include feed: here too?
-    return protocol() == "file";
-}
-
-static void appendEscapingBadChars(char*& buffer, const char *strStart, size_t length)
-{
-    char *p = buffer;
-
-    const char *str = strStart;
-    const char *strEnd = strStart + length;
-    while (str < strEnd) {
-        unsigned char c = *str++;
-        if (isBadChar(c)) {
-            if (c == '%' || c == '?') {
-                *p++ = c;
-            } else {
-                *p++ = '%';
-                *p++ = hexDigits[c >> 4];
-                *p++ = hexDigits[c & 0xF];
-            }
-        } else {
-            *p++ = c;
-        }
-    }
-    
-    buffer = p;
-}
-
-// copy a path, accounting for "." and ".." segments
-static int copyPathRemovingDots(char *dst, const char *src, int srcStart, int srcEnd)
-{
-    char *bufferPathStart = dst;
-
-    // empty path is a special case, and need not have a leading slash
-    if (srcStart != srcEnd) {
-        const char *baseStringStart = src + srcStart;
-        const char *baseStringEnd = src + srcEnd;
-        const char *baseStringPos = baseStringStart;
-
-        // this code is unprepared for paths that do not begin with a
-        // slash and we should always have one in the source string
-        ASSERT(baseStringPos[0] == '/');
-
-        // copy the leading slash into the destination
-        *dst = *baseStringPos;
-        baseStringPos++;
-        dst++;
-
-        while (baseStringPos < baseStringEnd) {
-            if (baseStringPos[0] == '.' && dst[-1] == '/') {
-                if (baseStringPos[1] == '/' || baseStringPos + 1 == baseStringEnd) {
-                    // skip over "." segment
-                    baseStringPos += 2;
-                    continue;
-                } else if (baseStringPos[1] == '.' && (baseStringPos[2] == '/' ||
-                                       baseStringPos + 2 == baseStringEnd)) {
-                    // skip over ".." segment and rewind the last segment
-                    // the RFC leaves it up to the app to decide what to do with excess
-                    // ".." segments - we choose to drop them since some web content
-                    // relies on this.
-                    baseStringPos += 3;
-                    if (dst > bufferPathStart + 1) {
-                        dst--;
-                    }
-                    // Note that these two while blocks differ subtly.
-                    // The first helps to remove multiple adjoining slashes as we rewind.
-                    // The +1 to bufferPathStart in the first while block prevents eating a leading slash
-                    while (dst > bufferPathStart + 1 && dst[-1] == '/') {
-                        dst--;
-                    }
-                    while (dst > bufferPathStart && dst[-1] != '/') {
-                        dst--;
-                    }
-                    continue;
-                }
-            }
-
-            *dst = *baseStringPos;
-            baseStringPos++;
-            dst++;
-        }
-    }
-    *dst = '\0';
-    return dst - bufferPathStart;
-}
-
-static inline bool hasSlashDotOrDotDot(const char *str)
-{
-    const unsigned char *p = reinterpret_cast<const unsigned char *>(str);
-    if (!*p)
-        return false;
-    unsigned char pc = *p;
-    while (unsigned char c = *++p) {
-        if (c == '.' && (pc == '/' || pc == '.'))
-            return true;
-        pc = c;
-    }
-    return false;
-}
-
-static inline bool matchLetter(char c, char lowercaseLetter)
-{
-    return (c | 0x20) == lowercaseLetter;
-}
-
-void KURL::parse(const char *url, const QString *originalString)
-{
-    m_isValid = true;
-
-    if (!url || url[0] == '\0') {
-        // valid URL must be non-empty
-        m_isValid = false;
-        urlString = url;
-        return;
-    }
-
-    if (!isSchemeFirstChar(url[0])) {
-        // scheme must start with an alphabetic character
-        m_isValid = false;
-        urlString = url;
-        return;
-    }
-
-    int schemeEnd = 0;
-    while (isSchemeChar(url[schemeEnd])) {
-        schemeEnd++;
-    }
-
-    if (url[schemeEnd] != ':') {
-        m_isValid = false;
-        urlString = url;
-        return;
-    }
-
-    int userStart = schemeEnd + 1;
-    int userEnd;
-    int passwordStart;
-    int passwordEnd;
-    int hostStart;
-    int hostEnd;
-    int portStart;
-    int portEnd;
-
-    bool hierarchical = url[schemeEnd + 1] == '/';
-
-    if (hierarchical && url[schemeEnd + 2] == '/') {
-        // part after the scheme must be a net_path, parse the authority section
-
-        // FIXME: authority characters may be scanned twice
-        userStart += 2;
-        userEnd = userStart;
-
-        int colonPos = 0;
-        while (isUserInfoChar(url[userEnd])) {
-            if (url[userEnd] == ':' && colonPos == 0) {
-                colonPos = userEnd;
-            }
-            userEnd++;
-        }
-        
-        if (url[userEnd] == '@') {
-            // actual end of the userinfo, start on the host
-            if (colonPos != 0) {
-                passwordEnd = userEnd;
-                userEnd = colonPos;
-                passwordStart = colonPos + 1;
-            } else {
-                passwordStart = passwordEnd = userEnd;
-            }
-            hostStart = passwordEnd + 1;
-        } else if (url[userEnd] == '[' || isPathSegmentEndChar(url[userEnd])) {
-            // hit the end of the authority, must have been no user
-            // or looks like an IPv6 hostname
-            // either way, try to parse it as a hostname
-            userEnd = userStart;
-            passwordStart = passwordEnd = userEnd;
-            hostStart = userStart;
-        } else {
-            // invalid character
-            m_isValid = false;
-            urlString = url;
-            return;
-        }
-
-        hostEnd = hostStart;
-
-        // IPV6 IP address
-        if (url[hostEnd] == '[') {
-            hostEnd++;
-            while (isIPv6Char(url[hostEnd])) {
-                hostEnd++;
-            }
-            if (url[hostEnd] == ']') {
-                hostEnd++;
-            } else {
-                // invalid character
-                m_isValid = false;
-                urlString = url;
-                return;
-            }
-        } else {
-            while (isHostnameChar(url[hostEnd])) {
-                hostEnd++;
-            }
-        }
-        
-        if (url[hostEnd] == ':') {
-            portStart = portEnd = hostEnd + 1;
-            // possible start of port
-            portEnd = portStart;
-            while (isdigit(url[portEnd])) {
-                portEnd++;
-            }
-        } else {
-            portStart = portEnd = hostEnd;
-        }
-
-        if (!isPathSegmentEndChar(url[portEnd])) {
-            // invalid character
-            m_isValid = false;
-            urlString = url;
-            return;
-        }
-    } else {
-        // the part after the scheme must be an opaque_part or an abs_path
-        userEnd = userStart;
-        passwordStart = passwordEnd = userEnd;
-        hostStart = hostEnd = passwordEnd;
-        portStart = portEnd = hostEnd;
-    }
-        
-    int pathStart = portEnd;
-    int pathEnd = pathStart;
-    int queryStart;
-    int queryEnd;
-    int fragmentStart;
-    int fragmentEnd;
-
-    if (!hierarchical) {
-        while (url[pathEnd] != '\0' && url[pathEnd] != '?') {
-            pathEnd++;
-        }
-        queryStart = queryEnd = pathEnd;
-
-        while (url[queryEnd] != '\0') {
-            queryEnd++;
-        }
-
-        fragmentStart = fragmentEnd = queryEnd;
-    }
-    else {
-        while (url[pathEnd] != '\0' && url[pathEnd] != '?' && url[pathEnd] != '#') {
-            pathEnd++;
-        }
-    
-        queryStart = pathEnd;
-        queryEnd = queryStart;
-        if (url[queryStart] == '?') {
-            while (url[queryEnd] != '\0' && url[queryEnd] != '#') {
-                queryEnd++;
-            }
-        }
-        
-        fragmentStart = queryEnd;
-        fragmentEnd = fragmentStart;
-        if (url[fragmentStart] == '#') {
-            fragmentStart++;
-            fragmentEnd = fragmentStart;
-            while(url[fragmentEnd] != '\0') {
-                fragmentEnd++;
-            }
-        }
-    }
-
-    // assemble it all, remembering the real ranges
-
-    Vector<char, 4096> buffer(fragmentEnd * 3 + 1);
-
-    char *p = buffer;
-    const char *strPtr = url;
-
-    // copy in the scheme
-    const char *schemeEndPtr = url + schemeEnd;
-    while (strPtr < schemeEndPtr) {
-        *p++ = *strPtr++;
-    }
-    schemeEndPos = p - buffer;
-
-    // Check if we're http or https.
-    bool isHTTPorHTTPS = matchLetter(url[0], 'h')
-        && matchLetter(url[1], 't')
-        && matchLetter(url[2], 't')
-        && matchLetter(url[3], 'p')
-        && (url[4] == ':'
-            || (matchLetter(url[4], 's') && url[5] == ':'));
-
-    bool hostIsLocalHost = portEnd - userStart == 9
-        && matchLetter(url[userStart], 'l')
-        && matchLetter(url[userStart+1], 'o')
-        && matchLetter(url[userStart+2], 'c')
-        && matchLetter(url[userStart+3], 'a')
-        && matchLetter(url[userStart+4], 'l')
-        && matchLetter(url[userStart+5], 'h')
-        && matchLetter(url[userStart+6], 'o')
-        && matchLetter(url[userStart+7], 's')
-        && matchLetter(url[userStart+8], 't');
-
-    bool isFile = matchLetter(url[0], 'f')
-        && matchLetter(url[1], 'i')
-        && matchLetter(url[2], 'l')
-        && matchLetter(url[3], 'e')
-        && url[4] == ':';
-        
-    // File URLs need a host part unless it is just file:// or file://localhost
-    bool degenFilePath = pathStart == pathEnd
-        && (hostStart == hostEnd
-            || hostIsLocalHost);
-    
-    bool haveNonHostAuthorityPart = userStart != userEnd || passwordStart != passwordEnd || portStart != portEnd;
-
-    // add ":" after scheme
-    *p++ = ':';
-
-    // if we have at least one authority part or a file URL - add "//" and authority
-    if (isFile ? !degenFilePath
-               : (haveNonHostAuthorityPart || hostStart != hostEnd)) {
-
-//if ((isFile && !degenFilePath) || haveNonHostAuthorityPart || hostStart != hostEnd) {
-// still adds // for file://localhost, file://
-
-//if (!(isFile && degenFilePath) && (haveNonHostAuthorityPart || hostStart != hostEnd)) {
-//doesn't add // for things like file:///foo
-
-        *p++ = '/';
-        *p++ = '/';
-
-        userStartPos = p - buffer;
-
-        // copy in the user
-        strPtr = url + userStart;
-        const char *userEndPtr = url + userEnd;
-        while (strPtr < userEndPtr) {
-            *p++ = *strPtr++;
-        }
-        userEndPos = p - buffer;
-        
-        // copy in the password
-        if (passwordEnd != passwordStart) {
-            *p++ = ':';
-            strPtr = url + passwordStart;
-            const char *passwordEndPtr = url + passwordEnd;
-            while (strPtr < passwordEndPtr) {
-                *p++ = *strPtr++;
-            }
-        }
-        passwordEndPos = p - buffer;
-        
-        // If we had any user info, add "@"
-        if (p - buffer != userStartPos) {
-            *p++ = '@';
-        }
-        
-        // copy in the host, except in the case of a file URL with authority="localhost"
-        if (!(isFile && hostIsLocalHost && !haveNonHostAuthorityPart)) {
-            strPtr = url + hostStart;
-            const char *hostEndPtr = url + hostEnd;
-            while (strPtr < hostEndPtr) {
-                *p++ = *strPtr++;
-            }
-        }
-        hostEndPos = p - buffer;
-        
-        // copy in the port
-        if (portEnd != portStart) {
-            *p++ = ':';
-            strPtr = url + portStart;
-            const char *portEndPtr = url + portEnd;
-            while (strPtr < portEndPtr) {
-                *p++ = *strPtr++;
-            }
-        }
-        portEndPos = p - buffer;
-    } else {
-        userStartPos = userEndPos = passwordEndPos = hostEndPos = portEndPos = p - buffer;
-    }
-
-    // For canonicalization, ensure we have a '/' for no path.
-    // Only do this for http and https.
-    if (isHTTPorHTTPS && pathEnd - pathStart == 0) {
-        *p++ = '/';
-    }
-       
-    // add path, escaping bad characters
-    
-    if (hierarchical && hasSlashDotOrDotDot(url)) {
-        Vector<char, 4096> path_buffer(pathEnd - pathStart + 1);
-        copyPathRemovingDots(path_buffer, url, pathStart, pathEnd);
-        appendEscapingBadChars(p, path_buffer, strlen(path_buffer));
-    } else
-        appendEscapingBadChars(p, url + pathStart, pathEnd - pathStart);
-
-    pathEndPos = p - buffer;
-    
-    
-    // add query, escaping bad characters
-    appendEscapingBadChars(p, url + queryStart, queryEnd - queryStart);
-    queryEndPos = p - buffer;
-    
-    // add fragment, escaping bad characters
-    if (fragmentEnd != queryEnd) {
-        *p++ = '#';
-        appendEscapingBadChars(p, url + fragmentStart, fragmentEnd - fragmentStart);
-    }
-    fragmentEndPos = p - buffer;
-
-    // If we didn't end up actually changing the original string and
-    // it started as a QString, just reuse it, to avoid extra
-    // allocation.
-    if (originalString && strncmp(buffer, url, fragmentEndPos) == 0) {
-        urlString = *originalString;
-    } else {
-        urlString = QString(buffer, fragmentEndPos);
-    }
-
-    ASSERT(p - buffer <= (int)buffer.size());
-}
-
-bool operator==(const KURL &a, const KURL &b)
-{
-    return a.urlString == b.urlString;
-}
-
-bool urlcmp(const QString &a, const QString &b, bool ignoreTrailingSlash, bool ignoreRef)
-{
-    if (ignoreRef) {
-        KURL aURL(a);
-        KURL bURL(b);
-        if (aURL.m_isValid && bURL.m_isValid) {
-            return aURL.urlString.left(aURL.queryEndPos) == bURL.urlString.left(bURL.queryEndPos);
-        }
-    }
-    return a == b;
-}
-
-QString KURL::encode_string(const QString& notEncodedString)
-{
-    QCString asUTF8 = notEncodedString.utf8();
-    
-    Vector<char, 4096> buffer(asUTF8.length() * 3 + 1);
-    char *p = buffer;
-
-    const char *str = asUTF8;
-    const char *strEnd = str + asUTF8.length();
-    while (str < strEnd) {
-        unsigned char c = *str++;
-        if (isBadChar(c)) {
-            *p++ = '%';
-            *p++ = hexDigits[c >> 4];
-            *p++ = hexDigits[c & 0xF];
-        } else {
-            *p++ = c;
-        }
-    }
-    
-    QString result(buffer, p - buffer);
-    
-    ASSERT(p - buffer <= (int)buffer.size());
-
-    return result;
-}
-
-CFURLRef KURL::createCFURL() const
-{
-    const UInt8 *bytes = (const UInt8 *)urlString.latin1();
-    // NOTE: We use UTF-8 here since this encoding is used when computing strings when returning URL components
-    // (e.g calls to NSURL -path). However, this function is not tolerant of illegal UTF-8 sequences, which
-    // could either be a malformed string or bytes in a different encoding, like Shift-JIS, so we fall back
-    // onto using ISO Latin-1 in those cases.
-    CFURLRef result = CFURLCreateAbsoluteURLWithBytes(0, bytes, urlString.length(), kCFStringEncodingUTF8, 0, true);
-    if (!result)
-        result = CFURLCreateAbsoluteURLWithBytes(0, bytes, urlString.length(), kCFStringEncodingISOLatin1, 0, true);
-    return result;
-}
-
-NSURL *KURL::getNSURL() const
-{
-    return KWQCFAutorelease(createCFURL());
-}
-
-static QString encodeHostname(const QString &s)
-{
-    // Needs to be big enough to hold an IDN-encoded name.
-    // For host names bigger than this, we won't do IDN encoding, which is almost certainly OK.
-    const unsigned hostnameBufferLength = 2048;
-
-    if (s.isAllASCII() || s.length() > hostnameBufferLength) {
-        return s;
-    }
-
-    UChar buffer[hostnameBufferLength];    
-    UErrorCode error = U_ZERO_ERROR;
-    int32_t numCharactersConverted = uidna_IDNToASCII
-        (reinterpret_cast<const UChar *>(s.unicode()), s.length(), buffer, hostnameBufferLength, UIDNA_ALLOW_UNASSIGNED, 0, &error);
-    if (error != U_ZERO_ERROR) {
-        return s;
-    }
-    return QString(reinterpret_cast<QChar *>(buffer), numCharactersConverted);
-}
-
-static Vector<pair<int, int> > findHostnamesInMailToURL(const QString &s)
-{
-    // In a mailto: URL, host names come after a '@' character and end with a '>' or ',' or '?' or end of string character.
-    // Skip quoted strings so that characters in them don't confuse us.
-    // When we find a '?' character, we are past the part of the URL that contains host names.
-
-    Vector<pair<int, int> > a;
-
-    int p = 0;
-    while (1) {
-        // Find start of host name or of quoted string.
-        int hostnameOrStringStart = s.find(QRegExp("[\"@?]"), p);
-        if (hostnameOrStringStart == -1) {
-            return a;
-        }
-        QChar c = s[hostnameOrStringStart];
-        p = hostnameOrStringStart + 1;
-
-        if (c == '?') {
-            return a;
-        }
-        
-        if (c == '@') {
-            // Find end of host name.
-            int hostnameStart = p;
-            int hostnameEnd = s.find(QRegExp("[>,?]"), p);
-            bool done;
-            if (hostnameEnd == -1) {
-                hostnameEnd = s.length();
-                done = true;
-            } else {
-                p = hostnameEnd;
-                done = false;
-            }
-
-            a.append(make_pair(hostnameStart, hostnameEnd));
-
-            if (done)
-                return a;
-        } else {
-            // Skip quoted string.
-            ASSERT(c == '"');
-            while (1) {
-                int escapedCharacterOrStringEnd = s.find(QRegExp("[\"\\]"), p);
-                if (escapedCharacterOrStringEnd == -1)
-                    return a;
-
-                c = s[escapedCharacterOrStringEnd];
-                p = escapedCharacterOrStringEnd + 1;
-                
-                // If we are the end of the string, then break from the string loop back to the host name loop.
-                if (c == '"')
-                    break;
-                
-                // Skip escaped character.
-                ASSERT(c == '\\');
-                if (p == static_cast<int>(s.length()))
-                    return a;
-
-                ++p;
-            }
-        }
-    }
-}
-
-static bool findHostnameInHierarchicalURL(const QString &s, int &startOffset, int &endOffset)
-{
-    // Find the host name in a hierarchical URL.
-    // It comes after a "://" sequence, with scheme characters preceding.
-    // If ends with the end of the string or a ":" or a path segment ending character.
-    // If there is a "@" character, the host part is just the part after the "@".
-    int separator = s.find("://");
-    if (separator <= 0) {
-        return false;
-    }
-
-    // Check that all characters before the :// are valid scheme characters.
-    if (!isSchemeFirstChar(s[0].latin1())) {
-        return false;
-    }
-    for (int i = 1; i < separator; ++i) {
-        if (!isSchemeChar(s[i].latin1())) {
-            return false;
-        }
-    }
-
-    // Start after the separator.
-    int authorityStart = separator + 3;
-
-    // Find terminating character.
-    int length = s.length();
-    int hostnameEnd = length;
-    for (int i = authorityStart; i < length; ++i) {
-        char c = s[i].latin1();
-        if (c == ':' || (isPathSegmentEndChar(c) && c != '\0')) {
-            hostnameEnd = i;
-            break;
-        }
-    }
-
-    // Find "@" for the start of the host name.
-    int userInfoTerminator = s.find('@', authorityStart);
-    int hostnameStart;
-    if (userInfoTerminator == -1 || userInfoTerminator > hostnameEnd) {
-        hostnameStart = authorityStart;
-    } else {
-        hostnameStart = userInfoTerminator + 1;
-    }
-
-    startOffset = hostnameStart;
-    endOffset = hostnameEnd;
-    return true;
-}
-
-static QString encodeHostnames(const QString &s)
-{
-    if (s.startsWith("mailto:", false)) {
-        const Vector<pair<int, int> > hostnameRanges = findHostnamesInMailToURL(s);
-        int n = hostnameRanges.size();
-        if (n != 0) {
-            QString result;
-            uint p = 0;
-            for (int i = 0; i < n; ++i) {
-                const pair<int, int> &r = hostnameRanges[i];
-                result += s.mid(p, r.first);
-                result += encodeHostname(s.mid(r.first, r.second - r.first));
-                p = r.second;
-            }
-            result += s.mid(p);
-            return result;
-        }
-    } else {
-        int hostStart, hostEnd;
-        if (findHostnameInHierarchicalURL(s, hostStart, hostEnd)) {
-            return s.left(hostStart) + encodeHostname(s.mid(hostStart, hostEnd - hostStart)) + s.mid(hostEnd); 
-        }
-    }
-    return s;
-}
-
-static char *encodeRelativeString(const KURL &base, const QString &rel, const QTextCodec *codec)
-{
-    QString s = encodeHostnames(rel);
-
-    char *strBuffer;
-
-    static const QTextCodec UTF8Codec(kCFStringEncodingUTF8);
-
-    const QTextCodec *pathCodec = codec ? codec : &UTF8Codec;
-    const QTextCodec *otherCodec = pathCodec;
-    
-    // Always use UTF-8 for mailto URLs because that's what mail applications expect.
-    // Always use UTF-8 for paths in file and help URLs, since they are local filesystem paths,
-    // and help content is often defined with this in mind, but use native encoding for the
-    // non-path parts of the URL.
-    if (*pathCodec != UTF8Codec) {
-        QString protocol;
-        if (rel.length() > 0 && isSchemeFirstChar(rel.at(0).latin1())) {
-            for (uint i = 1; i < rel.length(); i++) {
-                char p = rel.at(i).latin1();
-                if (p == ':') {
-                    protocol = rel.left(i);
-                    break;
-                }
-                if (!isSchemeChar(p)) {
-                    break;
-                }
-            }
-        }
-        if (!protocol) {
-            protocol = base.protocol();
-        }
-        protocol = protocol.lower();
-        if (protocol == "file" || protocol == "help") {
-            pathCodec = &UTF8Codec;
-        } else if (protocol == "mailto") {
-            pathCodec = &UTF8Codec;
-            otherCodec = &UTF8Codec;
-        }
-    }
-    
-    int pathEnd = -1;
-    if (*pathCodec != *otherCodec) {
-        pathEnd = s.find(QRegExp("[?#]"));
-    }
-    if (pathEnd == -1) {
-        QCString decoded = pathCodec->fromUnicode(s);
-        int decodedLength = decoded.length();
-        strBuffer = static_cast<char *>(fastMalloc(decodedLength + 1));
-        memcpy(strBuffer, decoded, decodedLength);
-        strBuffer[decodedLength] = 0;
-    } else {
-        QCString pathDecoded = pathCodec->fromUnicode(s.left(pathEnd));
-        QCString otherDecoded = otherCodec->fromUnicode(s.mid(pathEnd));
-        int pathDecodedLength = pathDecoded.length();
-        int otherDecodedLength = otherDecoded.length();
-        strBuffer = static_cast<char *>(fastMalloc(pathDecodedLength + otherDecodedLength + 1));
-        memcpy(strBuffer, pathDecoded, pathDecodedLength);
-        memcpy(strBuffer + pathDecodedLength, otherDecoded, otherDecodedLength);
-        strBuffer[pathDecodedLength + otherDecodedLength] = 0;
-    }
-
-    return strBuffer;
-}
-
-static QString substituteBackslashes(const QString &string)
-{
-    int questionPos = string.find('?');
-    int hashPos = string.find('#');
-    unsigned pathEnd;
-    
-    if (hashPos >= 0 && (questionPos < 0 || questionPos > hashPos)) {
-        pathEnd = hashPos;
-    } else if (questionPos >= 0) {
-        pathEnd = questionPos;
-    } else {
-        pathEnd = string.length();
-    }
-
-    return string.left(pathEnd).replace('\\','/') + string.mid(pathEnd);
-}
-
-bool KURL::isHierarchical() const
-{
-    if (!m_isValid)
-        return false;
-    assert(urlString[schemeEndPos] == ':');
-    return urlString[schemeEndPos + 1] == '/';
-}
index 3a555f0e1d27b405fd3191baaad5fb81d7d488f2..5842b537629cf55d19603a84d71db17a99069244 100644 (file)
 #import "KWQListBox.h"
 
 #import "KWQExceptions.h"
-#import "KWQView.h"
 #import "MacFrame.h"
 #import "WebCoreFrameBridge.h"
 #import "WebCoreTextRenderer.h"
 #import "WebCoreTextRendererFactory.h"
+#import "WebCoreWidgetHolder.h"
 #import <kxmlcore/Assertions.h>
 
 #import "render_form.h"
@@ -43,10 +43,10 @@ const float bottomMargin = 1;
 const float leftMargin = 2;
 const float rightMargin = 2;
 
-@interface KWQListBoxScrollView : NSScrollView <KWQWidgetHolder>
+@interface KWQListBoxScrollView : NSScrollView <WebCoreWidgetHolder>
 @end
 
-@interface KWQTableView : NSTableView <KWQWidgetHolder>
+@interface KWQTableView : NSTableView <WebCoreWidgetHolder>
 {
 @public
     QListBox *_box;
index 955bb11e1ab54e63374f7141cac6071cca487c46..ab511c9763f7569c947d2b255804425051be993b 100644 (file)
@@ -244,25 +244,6 @@ bool KWQListImpl::removeLast(bool deleteItem)
     return remove(nodeCount - 1, deleteItem);
 }
 
-bool KWQListImpl::remove(const void *item, bool deleteItem, int (*compareFunc)(void *a, void *b, void *data), void *data)
-{
-    KWQListNode *node;
-
-    node = head;
-
-    while (node && compareFunc((void *)item, node->data, data) != 0) {
-       node = node->next;
-    }
-    
-    if (node == 0) {
-       return false;
-    }
-
-    cur = node;
-
-    return remove(deleteItem);
-}
-
 bool KWQListImpl::removeRef(const void *item, bool deleteItem)
 {
     KWQListNode *node;
index 74ee20c9a27fa06ae678d53cb25c0ce60aabc047..4c2ce0d0025922b6a5a47dfa09c04cac30259b83 100644 (file)
@@ -42,14 +42,12 @@ public:
     bool isEmpty() const { return nodeCount == 0; }
     uint count() const { return nodeCount; }
     void clear(bool deleteItems);
-    void sort(int (*compareFunc)(void *a, void *b, void *data), void *data); 
 
     void *at(uint n);
 
     bool insert(uint n, const void *item);
     bool remove(bool deleteItem);
     bool remove(uint n, bool deleteItem);
-    bool remove(const void *item, bool deleteItem, int (*compareFunc)(void *a, void *b, void *data), void *data);
     bool removeFirst(bool deleteItem);
     bool removeLast(bool deleteItem);
     bool removeRef(const void *item, bool deleteItem);
index 288736c1effbeed62e859bbb295a455ed13fe730..37c5b227728e7690f5e72f06ab1089d03b6b8987 100644 (file)
 #ifndef QLIST_H_
 #define QLIST_H_
 
-#include "KWQDef.h"
-#include "KWQCollection.h"
 #include "KWQListImpl.h"
 
 template <class T> class QPtrListIterator;
 
-template <class T> class QPtrList : public QPtrCollection {
+template <class T> class QPtrList {
 public:
-    QPtrList() : impl(deleteFunc) { }
+    QPtrList() : impl(deleteFunc), del_item(false) { }
     ~QPtrList() { impl.clear(del_item); }
     
+    QPtrList(const QPtrList& l) : impl(l.impl), del_item(false) { }
     QPtrList& operator=(const QPtrList &l) { impl.assign(l.impl, del_item); return *this; }
 
     bool isEmpty() const { return impl.isEmpty(); }
@@ -48,7 +47,7 @@ public:
     bool insert(uint n, const T *item) { return impl.insert(n, item); }
     bool remove() { return impl.remove(del_item); }
     bool remove(uint n) { return impl.remove(n, del_item); }
-    bool remove(const T *item) { return impl.remove(item, del_item, compareFunc, this); }
+    bool remove(const T *item) { return impl.removeRef(item, del_item); }
     bool removeFirst() { return impl.removeFirst(del_item); }
     bool removeLast() { return impl.removeLast(del_item); }
     bool removeRef(const T *item) { return impl.removeRef(item, del_item); }
@@ -71,20 +70,21 @@ public:
     uint containsRef(const T *item) const { return impl.containsRef(item); }
     int findRef(const T *item) { return impl.findRef(item); }
 
-    virtual int compareItems(void *a, void *b) { return a != b; }
-    
     typedef QPtrListIterator<T> Iterator;
     typedef QPtrListIterator<T> ConstIterator;
     ConstIterator begin() const { return ConstIterator(*this); }
     ConstIterator end() const { ConstIterator itr(*this); itr.toLast(); ++itr; return itr; }
 
+    bool autoDelete() const { return del_item; }
+    void setAutoDelete(bool autoDelete) { del_item = autoDelete; }
+
  private:
     static void deleteFunc(void *item) { delete (T *)item; }
-    static int compareFunc(void *a, void *b, void *data) { return ((QPtrList *)data)->compareItems(a, b);  }
 
     friend class QPtrListIterator<T>;
 
     KWQListImpl impl;
+    bool del_item;
 };
 
 template <class T> class QPtrListIterator {
index eed31c4e8f733d7f82ae11762e53d11d1d6c6520..90ed97c03ff3bf9e902c5291426beb210ce10e35 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2004, 2006 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -416,16 +416,8 @@ static void writeSelection(QTextStream &ts, const RenderObject *o)
     }
 }
 
-static bool debuggingRenderTreeFlag = false;
-
-bool debuggingRenderTree()
-{
-    return debuggingRenderTreeFlag;
-}
-
 QString externalRepresentation(RenderObject* o)
 {
-    debuggingRenderTreeFlag = true;
     JSEditor::setSupportsPasteCommand(true);
 
     QString s;
index 90498a008c2983574904a65e2f40c483292ab874..2bcebdcebf603dffcf38e98e625189dec9c36153 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003, 2006 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -37,14 +37,3 @@ QString externalRepresentation(khtml::RenderObject *);
 void write(QTextStream &ts, const khtml::RenderObject &o, int indent = 0);
 
 #endif
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-bool debuggingRenderTree();
-
-#ifdef __cplusplus
-}
-#endif
index 03269ec6367dec1878d48beb11faf08912f81200..41068bf2ba7affbfb78f3be3b7c6b1e00c07b987 100644 (file)
 #import "KWQScrollBar.h"
 
 #import "KWQExceptions.h"
-#import "KWQView.h"
+#import "WebCoreWidgetHolder.h"
 #import "WidgetClient.h"
 
 using namespace WebCore;
 
-@interface KWQScrollBar : NSScroller <KWQWidgetHolder>
+@interface KWQScrollBar : NSScroller <WebCoreWidgetHolder>
 {
     QScrollBar* scrollBar;
 }
index 365c393d6a505396ecd4c70cc31005cfd528b621..945a9f7c9277a8f5b0788b0d062e9e6b39bfb03a 100644 (file)
 
 #import "KWQExceptions.h"
 #import "KWQLineEdit.h"
-#import "KWQView.h"
 #import "MacFrame.h"
 #import "WebCoreFrameBridge.h"
+#import "WebCoreWidgetHolder.h"
 #import "render_form.h"
 
 using namespace WebCore;
 
-@interface KWQSlider : NSSlider <KWQWidgetHolder>
+@interface KWQSlider : NSSlider <WebCoreWidgetHolder>
 {
     QSlider* slider;
     BOOL inNextValidKeyView;
index 7582ea4c2a58aaec33163c21ef13b86777292ccc..eb69a59e39ab33c2748465b09f8576ec5518bd51 100644 (file)
@@ -27,9 +27,9 @@
 #import "KWQTextField.h"
 
 #import "KWQLineEdit.h"
-#import "KWQView.h"
 #import "MacFrame.h"
 #import "WebCoreFrameBridge.h"
+#import "WebCoreWidgetHolder.h"
 #import "render_form.h"
 #import <kxmlcore/Assertions.h>
 
index 4f984b28955febbd260918651222a9bca1d509b4..47ec353bcf68642038f3fd5d4744e6f78f0facf9 100644 (file)
@@ -26,7 +26,6 @@
 #ifndef QVALUELIST_H_
 #define QVALUELIST_H_
 
-#include "KWQDef.h"
 #include "KWQValueListImpl.h"
 
 template <class T> class QValueList;
index 0f9e4f80dbbf7d36dbbd871011ccd27d825e5ad3..25f632b23273f6569a5e253f63f9a0d04d20f11c 100644 (file)
 #include "config.h"
 #include "DocLoader.h"
 
+#include "Cache.h"
+#include "CachedCSSStyleSheet.h"
 #include "CachedImage.h"
 #include "CachedScript.h"
-#include "CachedCSSStyleSheet.h"
 #include "CachedXSLStyleSheet.h"
-#include "Cache.h"
-#include "loader.h"
 #include "DocumentImpl.h"
-#include "KWQLoader.h"
 #include "Frame.h"
-
-#include <KURL.h>
+#include "KURL.h"
+#include "KWQLoader.h"
+#include "loader.h"
 
 namespace WebCore {
 
index 955e67e221a957bf6f9140e2d268559b79eae21b..73748def64eda701326da85a5d56f14642a099fc 100644 (file)
@@ -78,7 +78,6 @@
 #include <assert.h>
 #include <kio/global.h>
 #include "TransferJob.h"
-#include <klocale.h>
 #include <kxmlcore/Assertions.h>
 #include <qptrlist.h>
 #include "TextEncoding.h"
index 58bb16b3e1f2abd059046d012bd71fdbc48f7275..e03926f35b9678990457258b46940aa190e8bbb8 100644 (file)
@@ -40,7 +40,6 @@
 #include "WheelEvent.h"
 #include "cssstyleselector.h"
 #include "dom2_eventsimpl.h"
-#include "helper.h"
 #include "html_documentimpl.h"
 #include "html_inlineimpl.h"
 #include "htmlnames.h"
diff --git a/WebCore/platform/CookieJar.h b/WebCore/platform/CookieJar.h
new file mode 100644 (file)
index 0000000..9381c30
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2003, 2006 Apple Computer, Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef CookieJar_h
+#define CookieJar_h
+
+class KURL;
+
+namespace WebCore {
+
+    class String;
+
+    String cookies(const KURL&);
+    void setCookies(const KURL&, const KURL& policyBaseURL, const String&);
+    bool cookiesEnabled();
+
+}
+
+#endif
similarity index 81%
rename from WebCore/kwq/KWQKCookieJar.h
rename to WebCore/platform/Language.h
index bc63dacca193d39de28aaaac7933a131efcde9a1..1d59c2158525dd51e2be17e4e5d9ca6ebc93d8c2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003, 2006 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-class QString;
-class KURL;
+#ifndef Language_h
+#define Language_h
 
-class KWQKCookieJar
-{
-public:
-    static QString cookie(const KURL &);
-    static void setCookie(const KURL &, const KURL &policyBaseURL, const QString &);
-    static bool cookieEnabled();
-};
+namespace WebCore {
+
+    class String;
+
+    String defaultLanguage();
+
+}
+
+#endif
similarity index 80%
rename from WebCore/kwq/KWQKLocale.h
rename to WebCore/platform/LocalizedStrings.h
index 01812413b69c4e65c13b7f59e1f3b22cf28048d2..7ca32c97c0fef9e379ea7af9f7acb37416e8a041 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003, 2006 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#ifndef KLOCALE_H_
-#define KLOCALE_H_
+#ifndef LocalizedStrings_h
+#define LocalizedStrings_h
 
-#include "QStringList.h"
+namespace WebCore {
 
-QString inputElementAltText();
-QString resetButtonDefaultLabel();
-QString searchableIndexIntroduction();
-QString submitButtonDefaultLabel();
+    class String;
 
-class KLocale {
-public:
-    static QString language();
-};
+    String inputElementAltText();
+    String resetButtonDefaultLabel();
+    String searchableIndexIntroduction();
+    String submitButtonDefaultLabel();
+
+}
 
 #endif
index 12d493334b61f31a091c170011fbbff0b4c15300..56910334706bfd9f82ab609e27f26f4a8553ed70 100644 (file)
@@ -34,9 +34,6 @@
 #endif
 #include "KWQCString.h"
 
-// Make htmltokenizer.cpp happy
-#define QT_VERSION 300
-
 class QRegExp;
 
 #if __APPLE__
similarity index 69%
rename from WebCore/kwq/KWQCollection.h
rename to WebCore/platform/TextBoundaries.h
index 4ee01db196e2e1ff25ec9fe07fb74d3adb7696c2..b23b2edf32d237a417b4c27f6bcacc818f710d79 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2004, 2006 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#ifndef QCOLLECTION_H
-#define QCOLLECTION_H
+#ifndef TextBoundaries_h
+#define TextBoundaries_h
 
-#include "KWQDef.h"
+// FIXME: Change clients to use ICU and remove these functions.
 
-class QPtrCollection {
- public:
-    typedef void *Item;
+class QChar;
 
-    bool autoDelete() { return del_item; }
-    void setAutoDelete(bool autoDelete) { del_item = autoDelete; }
+namespace WebCore {
 
-    QPtrCollection(const QPtrCollection &) : del_item(false) { }
-    QPtrCollection &operator=(const QPtrCollection &) { return *this; }
+    void findWordBoundary(const QChar*, int len, int position, int *start, int *end);
+    int findNextWordFromIndex(const QChar*, int len, int position, bool forward);
 
- protected:
-    QPtrCollection() : del_item(false) { }
-    virtual ~QPtrCollection() { }
+    void findSentenceBoundary(const QChar*, int len, int position, int *start, int *end);
+    int findNextSentenceFromIndex(const QChar*, int len, int position, bool forward);
 
-    bool del_item;
-};
-
-#define Q3PtrCollection QPtrCollection
+}
 
 #endif
similarity index 71%
rename from WebCore/kwq/KWQKCookieJar.mm
rename to WebCore/platform/mac/CookieJar.mm
index aa32878738d1d060bc956c2558ec799139c0f39d..9cfbc265658defe0648eaf48d267df0be3548352 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003, 2006 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "config.h"
-#import "KWQKCookieJar.h"
+#import "config.h"
+#import "CookieJar.h"
 
+#import "KURL.h"
 #import "KWQExceptions.h"
-#import "KWQKURL.h"
+#import "PlatformString.h"
 #import "WebCoreCookieAdapter.h"
-#import <Foundation/NSString.h>
 
-QString KWQKCookieJar::cookie(const KURL &url)
+namespace WebCore {
+
+String cookies(const KURL& url)
 {
     KWQ_BLOCK_EXCEPTIONS;
-    return QString::fromNSString([[WebCoreCookieAdapter sharedAdapter] cookiesForURL:url.url().getNSString()]);
+    return [[WebCoreCookieAdapter sharedAdapter] cookiesForURL:url.url().getNSString()];
     KWQ_UNBLOCK_EXCEPTIONS;
-
-    return QString();
+    return String();
 }
 
-void KWQKCookieJar::setCookie(const KURL &url, const KURL &policyBaseURL, const QString &cookie)
+void setCookies(const KURL& url, const KURL& policyBaseURL, const String& cookies)
 {
     KWQ_BLOCK_EXCEPTIONS;
-
-    [[WebCoreCookieAdapter sharedAdapter] setCookies:cookie.getNSString()
-     forURL:url.url().getNSString() policyBaseURL:policyBaseURL.url().getNSString()];
-
+    [[WebCoreCookieAdapter sharedAdapter] setCookies:cookies
+        forURL:url.url().getNSString() policyBaseURL:policyBaseURL.url().getNSString()];
     KWQ_UNBLOCK_EXCEPTIONS;
 }
 
-bool KWQKCookieJar::cookieEnabled()
+bool cookiesEnabled()
 {
     KWQ_BLOCK_EXCEPTIONS;
     return [[WebCoreCookieAdapter sharedAdapter] cookiesEnabled];
     KWQ_UNBLOCK_EXCEPTIONS;
-
     return false;
 }
+
+}
similarity index 71%
rename from WebCore/kwq/KWQTextUtilities.h
rename to WebCore/platform/mac/Language.mm
index 7ef302a1cbe4c49edf70f2361800c6e5623e4af5..3b97ff961fde0dae9953e28119103a4a5a0c25ab 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003, 2006 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#ifndef _KWQTextUtilities_h_
-#define _KWQTextUtilities_h_
+#import "config.h"
+#import "Language.h"
 
-class QChar;
-void KWQFindWordBoundary(const QChar *chars, int len, int position, int *start, int *end);
-int KWQFindNextWordFromIndex(const QChar *chars, int len, int position, bool forward);
-void KWQFindSentenceBoundary(const QChar *chars, int len, int position, int *start, int *end);
-int KWQFindNextSentenceFromIndex(const QChar *chars, int len, int position, bool forward);
+#import "KWQExceptions.h"
+#import "PlatformString.h"
+#import "WebCoreViewFactory.h"
 
-#endif
+namespace WebCore {
+
+String defaultLanguage()
+{
+    KWQ_BLOCK_EXCEPTIONS;
+    return [[WebCoreViewFactory sharedFactory] defaultLanguageCode];
+    KWQ_UNBLOCK_EXCEPTIONS;
+    return String();
+}
+
+}
similarity index 62%
rename from WebCore/kwq/KWQKLocale.mm
rename to WebCore/platform/mac/LocalizedStringsMac.mm
index 599bfcef5dd1bebd1cce1b9349591b89576d8ef0..b25fd8e146cffc8d4e52c8b294473d0dc98487c5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003, 2006 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#include "config.h"
-#import "KWQKLocale.h"
+#import "config.h"
+#import "LocalizedStrings.h"
 
 #import "KWQExceptions.h"
-#import "Logging.h"
-#import "QString.h"
+#import "PlatformString.h"
 #import "WebCoreViewFactory.h"
 
-QString inputElementAltText()
-{
-    KWQ_BLOCK_EXCEPTIONS;
-    return QString::fromNSString([[WebCoreViewFactory sharedFactory] inputElementAltText]);
-    KWQ_UNBLOCK_EXCEPTIONS;
-
-    return QString();
-}
+namespace WebCore {
 
-QString resetButtonDefaultLabel()
+String inputElementAltText()
 {
     KWQ_BLOCK_EXCEPTIONS;
-    return QString::fromNSString([[WebCoreViewFactory sharedFactory] resetButtonDefaultLabel]);
+    return [[WebCoreViewFactory sharedFactory] inputElementAltText];
     KWQ_UNBLOCK_EXCEPTIONS;
-
-    return QString();
+    return String();
 }
 
-QString searchableIndexIntroduction()
+String resetButtonDefaultLabel()
 {
     KWQ_BLOCK_EXCEPTIONS;
-    return QString::fromNSString([[WebCoreViewFactory sharedFactory] searchableIndexIntroduction]);
+    return [[WebCoreViewFactory sharedFactory] resetButtonDefaultLabel];
     KWQ_UNBLOCK_EXCEPTIONS;
-
-    return QString();
+    return String();
 }
 
-QString submitButtonDefaultLabel()
+String searchableIndexIntroduction()
 {
     KWQ_BLOCK_EXCEPTIONS;
-    return QString::fromNSString([[WebCoreViewFactory sharedFactory] submitButtonDefaultLabel]);
+    return [[WebCoreViewFactory sharedFactory] searchableIndexIntroduction];
     KWQ_UNBLOCK_EXCEPTIONS;
-
-    return QString();
+    return String();
 }
 
-QString KLocale::language()
+String submitButtonDefaultLabel()
 {
     KWQ_BLOCK_EXCEPTIONS;
-    return QString::fromNSString([[WebCoreViewFactory sharedFactory] defaultLanguageCode]);
+    return [[WebCoreViewFactory sharedFactory] submitButtonDefaultLabel];
     KWQ_UNBLOCK_EXCEPTIONS;
+    return String();
+}
 
-    return QString();
 }
similarity index 62%
rename from WebCore/kwq/KWQTextUtilities.mm
rename to WebCore/platform/mac/TextBoundaries.mm
index 357cc0d7bdc1a3e8bab86fc6b6d4919fa67bfa35..d2bf3221e8e628ffa98d25c1f594ba958512d20e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2004, 2006 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#include "config.h"
-#import "KWQTextUtilities.h"
+#import "config.h"
+#import "TextBoundaries.h"
 
-#import "QString.h"
-#import <AppKit/NSAttributedString.h>
+#import <Cocoa/Cocoa.h>
 #import <unicode/ubrk.h>
-#import <unicode/ustring.h>
-#import <unicode/utypes.h>
 
-void KWQFindWordBoundary(const QChar *chars, int len, int position, int *start, int *end)
+namespace WebCore {
+
+void findWordBoundary(const QChar* chars, int len, int position, int* start, int* end)
 {
-    NSString *string = [[NSString alloc] initWithCharactersNoCopy:const_cast<unichar *>(reinterpret_cast<const unichar *>(chars))
+    NSString* string = [[NSString alloc] initWithCharactersNoCopy:const_cast<unichar*>(reinterpret_cast<const unichar*>(chars))
         length:len freeWhenDone:NO];
-    NSAttributedString *attr = [[NSAttributedString alloc] initWithString:string];
+    NSAttributedStringattr = [[NSAttributedString alloc] initWithString:string];
     NSRange range = [attr doubleClickAtIndex:(position >= len) ? len - 1 : position];
     [attr release];
     [string release];
@@ -44,44 +43,46 @@ void KWQFindWordBoundary(const QChar *chars, int len, int position, int *start,
     *end = range.location + range.length;
 }
 
-int KWQFindNextWordFromIndex(const QChar *chars, int len, int position, bool forward)
+int findNextWordFromIndex(const QChar* chars, int len, int position, bool forward)
 {   
-    NSString *string = [[NSString alloc] initWithCharactersNoCopy:const_cast<unichar *>(reinterpret_cast<const unichar *>(chars))
+    NSString* string = [[NSString alloc] initWithCharactersNoCopy:const_cast<unichar*>(reinterpret_cast<const unichar*>(chars))
         length:len freeWhenDone:NO];
-    NSAttributedString *attr = [[NSAttributedString alloc] initWithString:string];
+    NSAttributedStringattr = [[NSAttributedString alloc] initWithString:string];
     int result = [attr nextWordFromIndex:position forward:forward];
     [attr release];
     [string release];
     return result;
 }
 
-// This code was swiped from the CarbonCore UnicodeUtilities.  One change from that is to use the empty
-// string instead of the "old locale model" as the ultimate fallback.  This change is per the UnicodeUtilities
+// This code was swiped from the CarbonCore UnicodeUtilities. One change from that is to use the empty
+// string instead of the "old locale model" as the ultimate fallback. This change is per the UnicodeUtilities
 // engineer.
+//
 // NOTE: this abviously could be fairly expensive to do.  If it turns out to be a bottleneck, it might
 // help to instead put a call in the iteratory initializer to set the current text break locale.  Unfortunately,
 // we can not cache it across calls to our API since the result can change without our knowing (AFAIK
 // there are no notifiers for AppleTextBreakLocale and/or AppleLanguages changes).
-static char * currentTextBreakLocaleID(void)
+static char* currentTextBreakLocaleID()
 {
-#define localeStringLength 32
-    static char     localeStringBuffer[localeStringLength];
-    char *          localeString = &localeStringBuffer[0];
+    const int localeStringLength = 32;
+    static char localeStringBuffer[localeStringLength] = { 0 };
+    char* localeString = &localeStringBuffer[0];
     
-    // empty string means "root locale", which what we use if we can't use a pref
-    *localeString = 0;
+    // Empty string means "root locale", which what we use if we can't use a pref.
     
     // We get the parts string from AppleTextBreakLocale pref.
     // If that fails then look for the first language in the AppleLanguages pref.
-    CFStringRef prefLocaleStr = (CFStringRef) CFPreferencesCopyValue( CFSTR("AppleTextBreakLocale"), kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost );
+    CFStringRef prefLocaleStr = (CFStringRef)CFPreferencesCopyValue(CFSTR("AppleTextBreakLocale"),
+        kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
     if (!prefLocaleStr) {
-        CFArrayRef appleLangArr = (CFArrayRef) CFPreferencesCopyValue( CFSTR("AppleLanguages"), kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost );
+        CFArrayRef appleLangArr = (CFArrayRef)CFPreferencesCopyValue(CFSTR("AppleLanguages"),
+            kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
         if (appleLangArr)  {
             // Take the topmost language. Retain so that we can blindly release later.                                                                                                   
-            prefLocaleStr = (CFStringRef) CFArrayGetValueAtIndex(appleLangArr, 0);
+            prefLocaleStr = (CFStringRef)CFArrayGetValueAtIndex(appleLangArr, 0);
             if (prefLocaleStr)
-                CFRetain( prefLocaleStr ); 
-            CFRelease( appleLangArr );
+                CFRetain(prefLocaleStr); 
+            CFRelease(appleLangArr);
         }
     }
     
@@ -98,14 +99,15 @@ static char * currentTextBreakLocaleID(void)
     return localeString;
 }
 
-void KWQFindSentenceBoundary(const QChar *chars, int len, int position, int *start, int *end)
+void findSentenceBoundary(const QChar* chars, int len, int position, int* start, int* end)
 {
-    int  startPos = 0;
-    int  endPos = 0;
+    int startPos = 0;
+    int endPos = 0;
 
     UErrorCode status = U_ZERO_ERROR;
-    UBreakIterator *boundary = ubrk_open(UBRK_SENTENCE, currentTextBreakLocaleID(), const_cast<unichar *>(reinterpret_cast<const unichar *>(chars)), len, &status);
-    if ( boundary && U_SUCCESS(status) ) {
+    UBreakIterator* boundary = ubrk_open(UBRK_SENTENCE, currentTextBreakLocaleID(),
+        const_cast<unichar*>(reinterpret_cast<const unichar*>(chars)), len, &status);
+    if (boundary && U_SUCCESS(status)) {
         startPos = ubrk_preceding(boundary, position);
         if (startPos == UBRK_DONE) {
             startPos = 0;
@@ -121,13 +123,14 @@ void KWQFindSentenceBoundary(const QChar *chars, int len, int position, int *sta
     *end = endPos;
 }
 
-int KWQFindNextSentenceFromIndex(const QChar *chars, int len, int position, bool forward)
+int findNextSentenceFromIndex(const QChar* chars, int len, int position, bool forward)
 {
     int pos = 0;
     
     UErrorCode status = U_ZERO_ERROR;
-    UBreakIterator *boundary = ubrk_open(UBRK_SENTENCE, currentTextBreakLocaleID(), const_cast<unichar *>(reinterpret_cast<const unichar *>(chars)), len, &status);
-    if ( boundary && U_SUCCESS(status) ) {
+    UBreakIterator* boundary = ubrk_open(UBRK_SENTENCE, currentTextBreakLocaleID(),
+        const_cast<unichar*>(reinterpret_cast<const unichar*>(chars)), len, &status);
+    if (boundary && U_SUCCESS(status)) {
         if (forward) {
             pos = ubrk_following(boundary, position);
             if (pos == UBRK_DONE)
@@ -142,3 +145,5 @@ int KWQFindNextSentenceFromIndex(const QChar *chars, int len, int position, bool
         
     return pos;
 }
+
+}
similarity index 89%
rename from WebCore/kwq/KWQView.h
rename to WebCore/platform/mac/WebCoreWidgetHolder.h
index 07c0826824aa1ba55370ce85b6b6a2dc72dd033b..fc2b5ddad6bfa1d9dda71909aeef227a3f412a43 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2004, 2005 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -29,7 +29,7 @@ namespace WebCore {
     class Widget;
 }
 
-// all AK View subclasses in KWQ should implement this protocol
-@protocol KWQWidgetHolder
+// NSView subclasses in WebCore should implement this protocol
+@protocol WebCoreWidgetHolder
 - (WebCore::Widget *)widget;
 @end
index 57925c2f742f79360e74f2b108f77570d80b5746..f53fce29df147073cb59116fb9c119b3398b8080 100644 (file)
 #import "FoundationExtras.h"
 #import "GraphicsContext.h"
 #import "KWQExceptions.h"
-#import "KWQView.h"
 #import "MacFrame.h"
 #import "WebCoreFrameBridge.h"
 #import "WebCoreFrameView.h"
 #import "WebCoreView.h"
+#import "WebCoreWidgetHolder.h"
 #import "WidgetClient.h"
 
 namespace WebCore {
@@ -409,8 +409,8 @@ void Widget::removeFromSuperview()
 
 void Widget::beforeMouseDown(NSView *view)
 {
-    ASSERT([view conformsToProtocol:@protocol(KWQWidgetHolder)]);
-    Widget* widget = [(NSView <KWQWidgetHolder> *)view widget];
+    ASSERT([view conformsToProtocol:@protocol(WebCoreWidgetHolder)]);
+    Widget* widget = [(NSView <WebCoreWidgetHolder> *)view widget];
     if (widget) {
         ASSERT(view == widget->getOuterView());
         ASSERT(!widget->data->mustStayInWindow);
@@ -420,8 +420,8 @@ void Widget::beforeMouseDown(NSView *view)
 
 void Widget::afterMouseDown(NSView *view)
 {
-    ASSERT([view conformsToProtocol:@protocol(KWQWidgetHolder)]);
-    Widget* widget = [(NSView <KWQWidgetHolder>*)view widget];
+    ASSERT([view conformsToProtocol:@protocol(WebCoreWidgetHolder)]);
+    Widget* widget = [(NSView <WebCoreWidgetHolder>*)view widget];
     if (!widget) {
         KWQ_BLOCK_EXCEPTIONS;
         [view removeFromSuperview];
index eb31688fae06f2c2d7e14ec6891528bb25a34485..d259661b0146f113549cc80d1a4e06ac59db0d9e 100644 (file)
@@ -29,7 +29,6 @@
 #include "html_objectimpl.h"
 #include "java/kjavaappletwidget.h"
 #include "render_canvas.h"
-#include <klocale.h>
 #include "htmlnames.h"
 
 namespace WebCore {
index 53ce82346dddd59bf4680be3ccfde62bbce8b109..6b46541d37dbea9efb0d8754f7d327405cd73fb5 100644 (file)
@@ -39,8 +39,6 @@
 #include "KWQSlider.h"
 #include "MouseEvent.h"
 #include "dom2_eventsimpl.h"
-#include "helper.h"
-#include <klocale.h>
 #include <qcombobox.h>
 #include <qtextedit.h>
 
index 6dcf0b152657353ba708996122d6a2f421f2b62b..9190cb15d059991cd6775aaaec5620638f773a87 100644 (file)
@@ -41,7 +41,6 @@
 #include "htmltokenizer.h"
 #include "render_arena.h"
 #include "render_canvas.h"
-#include <klocale.h>
 #include <qtextstream.h>
 
 namespace WebCore {
@@ -594,11 +593,14 @@ RenderPart::RenderPart(HTMLElementImpl* node)
 
 RenderPart::~RenderPart()
 {
-    // Must call this here because by the time we get to ~RenderWidget,
-    // the RenderPart will be destroyed and it won't call our version
-    // of deleteWidget.
-    deleteWidget();
+    // Since deref ends up calling setWidget back on us, need to make sure
+    // that widget is already 0 so it won't do any work.
+    Widget* widget = m_widget;
     m_widget = 0;
+    if (widget && widget->isFrameView())
+        static_cast<FrameView*>(widget)->deref();
+    else
+        delete widget;
 
     setFrame(0);
 }
index cf84b760bdec6a434f07e742501859e51be5c719..edca3a1d7e72194f9d6c803401f6be461c2bced6 100644 (file)
@@ -32,7 +32,6 @@
 #include "DocumentImpl.h"
 #include "GraphicsContext.h"
 #include "HTMLInputElementImpl.h"
-#include "helper.h"
 #include "html_imageimpl.h"
 #include "htmlnames.h"
 #include "render_canvas.h"
index 73c73d4686821f715fa2cdef84e92ec402315554..4134c97c53a25125bc67d8edc8df431144995e4d 100644 (file)
@@ -34,9 +34,6 @@
 
 #include "htmlnames.h"
 #include "html_listimpl.h"
-#include "helper.h"
-
-//#define BOX_DEBUG
 
 namespace WebCore {