diff --git a/HTMLKit.xcodeproj/project.pbxproj b/HTMLKit.xcodeproj/project.pbxproj
index dc7ecb4..eb16663 100644
--- a/HTMLKit.xcodeproj/project.pbxproj
+++ b/HTMLKit.xcodeproj/project.pbxproj
@@ -15,13 +15,13 @@
621CC4921DEA704000D1992A /* HTMLDocument+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC48F1DEA704000D1992A /* HTMLDocument+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
621CC4931DEA704000D1992A /* HTMLDocument+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC48F1DEA704000D1992A /* HTMLDocument+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
621CC4941DEA704000D1992A /* HTMLDocument+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC48F1DEA704000D1992A /* HTMLDocument+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 621CC49B1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4991DEA71D800D1992A /* HTMLNodeIterator+Private.h */; };
- 621CC49C1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4991DEA71D800D1992A /* HTMLNodeIterator+Private.h */; };
- 621CC49D1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4991DEA71D800D1992A /* HTMLNodeIterator+Private.h */; };
- 621CC49E1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4991DEA71D800D1992A /* HTMLNodeIterator+Private.h */; };
+ 621CC49B1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4991DEA71D800D1992A /* HTMLNodeIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 621CC49C1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4991DEA71D800D1992A /* HTMLNodeIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 621CC49D1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4991DEA71D800D1992A /* HTMLNodeIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 621CC49E1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4991DEA71D800D1992A /* HTMLNodeIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
621CC4A51DEA721A00D1992A /* HTMLParser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4A31DEA721A00D1992A /* HTMLParser+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
621CC4A61DEA721A00D1992A /* HTMLParser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4A31DEA721A00D1992A /* HTMLParser+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 621CC4A71DEA721A00D1992A /* HTMLParser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4A31DEA721A00D1992A /* HTMLParser+Private.h */; };
+ 621CC4A71DEA721A00D1992A /* HTMLParser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4A31DEA721A00D1992A /* HTMLParser+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
621CC4A81DEA721A00D1992A /* HTMLParser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CC4A31DEA721A00D1992A /* HTMLParser+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
621FBE5B1BDAD68700BC9555 /* CSSSelectorParserTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 621FBE591BDAD68700BC9555 /* CSSSelectorParserTests.m */; };
621FBE5E1BDAD90200BC9555 /* CSSCombinatorSelectorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 621FBE5C1BDAD90200BC9555 /* CSSCombinatorSelectorTests.m */; };
@@ -66,6 +66,14 @@
626679D01DEA3DAF004353E7 /* HTMLCharacterData+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 626679CD1DEA3DAF004353E7 /* HTMLCharacterData+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
626679D11DEA3DAF004353E7 /* HTMLCharacterData+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 626679CD1DEA3DAF004353E7 /* HTMLCharacterData+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
626679D21DEA3DAF004353E7 /* HTMLCharacterData+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 626679CD1DEA3DAF004353E7 /* HTMLCharacterData+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 626BE1E21DF3819500C49514 /* HTMLDOMUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 626BE1E01DF3819500C49514 /* HTMLDOMUtils.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 626BE1E31DF3819500C49514 /* HTMLDOMUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 626BE1E01DF3819500C49514 /* HTMLDOMUtils.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 626BE1E41DF3819500C49514 /* HTMLDOMUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 626BE1E01DF3819500C49514 /* HTMLDOMUtils.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 626BE1E51DF3819500C49514 /* HTMLDOMUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 626BE1E01DF3819500C49514 /* HTMLDOMUtils.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 626BE1E61DF3819600C49514 /* HTMLDOMUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 626BE1E11DF3819500C49514 /* HTMLDOMUtils.m */; };
+ 626BE1E71DF3819600C49514 /* HTMLDOMUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 626BE1E11DF3819500C49514 /* HTMLDOMUtils.m */; };
+ 626BE1E81DF3819600C49514 /* HTMLDOMUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 626BE1E11DF3819500C49514 /* HTMLDOMUtils.m */; };
+ 626BE1E91DF3819600C49514 /* HTMLDOMUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 626BE1E11DF3819500C49514 /* HTMLDOMUtils.m */; };
62857C6B1D3988EE008DC254 /* HTMLKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 625A14BC19C7829400AD0C32 /* HTMLKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
62857C6C1D3988EE008DC254 /* HTMLKitErrorDomain.h in Headers */ = {isa = PBXBuildFile; fileRef = 626652F81C03D30F00C3F121 /* HTMLKitErrorDomain.h */; settings = {ATTRIBUTES = (Public, ); }; };
62857C6D1D398907008DC254 /* HTMLInputStreamReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 625A150619C78ABA00AD0C32 /* HTMLInputStreamReader.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -301,14 +309,17 @@
62857D901D39A47F008DC254 /* CSSCompoundSelector.h in Headers */ = {isa = PBXBuildFile; fileRef = 620C87791BD44CBE00FB3EEE /* CSSCompoundSelector.h */; settings = {ATTRIBUTES = (Public, ); }; };
628AF6301BC99A6C00496128 /* CSSNthExpressionsParserTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 628AF62E1BC99A6C00496128 /* CSSNthExpressionsParserTests.m */; };
62D8345A19FB1AC4009205A9 /* HTML5LibTokenizerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 62D8345819FB1AC4009205A9 /* HTML5LibTokenizerTest.m */; };
- 62D91C231DE218A500BEFADE /* HTMLRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D91C211DE218A500BEFADE /* HTMLRange.h */; };
- 62D91C241DE218A500BEFADE /* HTMLRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D91C211DE218A500BEFADE /* HTMLRange.h */; };
- 62D91C251DE218A500BEFADE /* HTMLRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D91C211DE218A500BEFADE /* HTMLRange.h */; };
- 62D91C261DE218A500BEFADE /* HTMLRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D91C211DE218A500BEFADE /* HTMLRange.h */; };
+ 62D91C231DE218A500BEFADE /* HTMLRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D91C211DE218A500BEFADE /* HTMLRange.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 62D91C241DE218A500BEFADE /* HTMLRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D91C211DE218A500BEFADE /* HTMLRange.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 62D91C251DE218A500BEFADE /* HTMLRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D91C211DE218A500BEFADE /* HTMLRange.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 62D91C261DE218A500BEFADE /* HTMLRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D91C211DE218A500BEFADE /* HTMLRange.h */; settings = {ATTRIBUTES = (Public, ); }; };
62D91C271DE218A500BEFADE /* HTMLRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 62D91C221DE218A500BEFADE /* HTMLRange.m */; };
62D91C281DE218A500BEFADE /* HTMLRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 62D91C221DE218A500BEFADE /* HTMLRange.m */; };
62D91C291DE218A500BEFADE /* HTMLRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 62D91C221DE218A500BEFADE /* HTMLRange.m */; };
62D91C2A1DE218A500BEFADE /* HTMLRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 62D91C221DE218A500BEFADE /* HTMLRange.m */; };
+ 62EC0A851E158BD80007786B /* HTMLRangeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 62EC0A841E158BD80007786B /* HTMLRangeTests.m */; };
+ 62EC0A861E158BD80007786B /* HTMLRangeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 62EC0A841E158BD80007786B /* HTMLRangeTests.m */; };
+ 62EC0A871E158BD80007786B /* HTMLRangeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 62EC0A841E158BD80007786B /* HTMLRangeTests.m */; };
62EC7AE71AEEAC6F0015D3BE /* HTMLKitMutationAlgorithmsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 62EC7AE51AEEAC6F0015D3BE /* HTMLKitMutationAlgorithmsTests.m */; };
62ECBEE11C0B69FD00AF847B /* HTMLKitErrorDomain.h in Headers */ = {isa = PBXBuildFile; fileRef = 626652F81C03D30F00C3F121 /* HTMLKitErrorDomain.h */; settings = {ATTRIBUTES = (Public, ); }; };
62ECBEE21C0B69FD00AF847B /* HTMLInputStreamReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 625A150619C78ABA00AD0C32 /* HTMLInputStreamReader.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -534,10 +545,10 @@
62ECBFDE1C0B6E4400AF847B /* HTML Standard.html in Resources */ = {isa = PBXBuildFile; fileRef = 624AC90D19FC702E00BD3C4A /* HTML Standard.html */; };
62ECBFDF1C0B6E4400AF847B /* html5lib-tests in Resources */ = {isa = PBXBuildFile; fileRef = 624AC90419FBFE8A00BD3C4A /* html5lib-tests */; };
62F658711BD83C8E0045F137 /* CSSNThExpressionSelectorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 62F6586F1BD83C8E0045F137 /* CSSNThExpressionSelectorTests.m */; };
- 62F7E5A21DEB63F900DEF09B /* HTMLRange+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F7E5A01DEB63F900DEF09B /* HTMLRange+Private.h */; };
- 62F7E5A31DEB63F900DEF09B /* HTMLRange+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F7E5A01DEB63F900DEF09B /* HTMLRange+Private.h */; };
- 62F7E5A41DEB63F900DEF09B /* HTMLRange+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F7E5A01DEB63F900DEF09B /* HTMLRange+Private.h */; };
- 62F7E5A51DEB63F900DEF09B /* HTMLRange+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F7E5A01DEB63F900DEF09B /* HTMLRange+Private.h */; };
+ 62F7E5A21DEB63F900DEF09B /* HTMLRange+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F7E5A01DEB63F900DEF09B /* HTMLRange+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 62F7E5A31DEB63F900DEF09B /* HTMLRange+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F7E5A01DEB63F900DEF09B /* HTMLRange+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 62F7E5A41DEB63F900DEF09B /* HTMLRange+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F7E5A01DEB63F900DEF09B /* HTMLRange+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 62F7E5A51DEB63F900DEF09B /* HTMLRange+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F7E5A01DEB63F900DEF09B /* HTMLRange+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -677,6 +688,8 @@
625EE45A1CBB171300F2CC8E /* HTMLKitTestUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTMLKitTestUtil.m; sourceTree = ""; };
626652F81C03D30F00C3F121 /* HTMLKitErrorDomain.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = HTMLKitErrorDomain.h; path = include/HTMLKitErrorDomain.h; sourceTree = ""; };
626679CD1DEA3DAF004353E7 /* HTMLCharacterData+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "HTMLCharacterData+Private.h"; sourceTree = ""; };
+ 626BE1E01DF3819500C49514 /* HTMLDOMUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLDOMUtils.h; sourceTree = ""; };
+ 626BE1E11DF3819500C49514 /* HTMLDOMUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTMLDOMUtils.m; sourceTree = ""; };
6279F87119E17DC700F12EE5 /* HTMLParserInsertionModes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = HTMLParserInsertionModes.h; path = include/HTMLParserInsertionModes.h; sourceTree = ""; };
6279F87219E1808D00F12EE5 /* HTMLElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HTMLElement.h; path = include/HTMLElement.h; sourceTree = ""; };
6279F87319E1808D00F12EE5 /* HTMLElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTMLElement.m; sourceTree = ""; };
@@ -835,8 +848,6 @@
6247A9421B152F4F00CCF25C /* HTMLNodeIterator.m */,
624717BA1B22009200B38302 /* HTMLTreeWalker.h */,
624717BB1B22009200B38302 /* HTMLTreeWalker.m */,
- 624717161B22333200C11912 /* HTMLNodeTraversal.h */,
- 624717171B22333200C11912 /* HTMLNodeTraversal.m */,
6247A9461B152F8C00CCF25C /* HTMLNodeFilter.h */,
624717B71B21FE5400B38302 /* HTMLNodeFilter.m */,
62D91C211DE218A500BEFADE /* HTMLRange.h */,
@@ -996,6 +1007,10 @@
621CC4991DEA71D800D1992A /* HTMLNodeIterator+Private.h */,
62F7E5A01DEB63F900DEF09B /* HTMLRange+Private.h */,
621CC4A31DEA721A00D1992A /* HTMLParser+Private.h */,
+ 624717161B22333200C11912 /* HTMLNodeTraversal.h */,
+ 624717171B22333200C11912 /* HTMLNodeTraversal.m */,
+ 626BE1E01DF3819500C49514 /* HTMLDOMUtils.h */,
+ 626BE1E11DF3819500C49514 /* HTMLDOMUtils.m */,
);
name = Private;
sourceTree = "";
@@ -1130,7 +1145,6 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
- 62F7E5A21DEB63F900DEF09B /* HTMLRange+Private.h in Headers */,
62ECBF181C0B6A1000AF847B /* HTMLKit.h in Headers */,
62ECBEE11C0B69FD00AF847B /* HTMLKitErrorDomain.h in Headers */,
62ECBEE21C0B69FD00AF847B /* HTMLInputStreamReader.h in Headers */,
@@ -1146,6 +1160,7 @@
62ECBEE91C0B69FD00AF847B /* HTMLCharacterToken.h in Headers */,
62ECBEEA1C0B69FD00AF847B /* HTMLCommentToken.h in Headers */,
62ECBEEB1C0B69FD00AF847B /* HTMLDOCTYPEToken.h in Headers */,
+ 626BE1E21DF3819500C49514 /* HTMLDOMUtils.h in Headers */,
62ECBEEC1C0B69FD00AF847B /* HTMLParseErrorToken.h in Headers */,
62ECBEED1C0B69FD00AF847B /* HTMLTagToken.h in Headers */,
62ECBEEE1C0B69FD00AF847B /* HTMLEOFToken.h in Headers */,
@@ -1172,6 +1187,8 @@
62ECBEFF1C0B69FE00AF847B /* HTMLNodeIterator.h in Headers */,
62ECBF001C0B69FF00AF847B /* HTMLTreeWalker.h in Headers */,
62ECBF011C0B69FF00AF847B /* HTMLNodeTraversal.h in Headers */,
+ 62F7E5A21DEB63F900DEF09B /* HTMLRange+Private.h in Headers */,
+ 621CC49B1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */,
62ECBF021C0B69FF00AF847B /* HTMLNodeFilter.h in Headers */,
62ECBF031C0B69FF00AF847B /* HTMLKitDOMExceptions.h in Headers */,
62ECBF041C0B69FF00AF847B /* HTMLNamespaces.h in Headers */,
@@ -1188,7 +1205,6 @@
62ECBF0F1C0B6A0100AF847B /* CSSSelector.h in Headers */,
62ECBF101C0B6A0100AF847B /* CSSSelectorBlock.h in Headers */,
62ECBF111C0B6A0200AF847B /* CSSTypeSelector.h in Headers */,
- 621CC49B1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */,
62ECBF121C0B6A0200AF847B /* CSSAttributeSelector.h in Headers */,
62ECBF131C0B6A0200AF847B /* CSSPseudoClassSelector.h in Headers */,
62ECBF141C0B6A0200AF847B /* CSSNthExpressionSelector.h in Headers */,
@@ -1218,6 +1234,7 @@
62857C841D398917008DC254 /* HTMLParser.h in Headers */,
62857CDB1D3989CE008DC254 /* CSSAttributeSelector.h in Headers */,
62857C791D398907008DC254 /* HTMLEOFToken.h in Headers */,
+ 626BE1E51DF3819500C49514 /* HTMLDOMUtils.h in Headers */,
62857CC41D3989A9008DC254 /* CSSSelectors.h in Headers */,
62857C731D398907008DC254 /* HTMLToken.h in Headers */,
62857CC51D3989AB008DC254 /* CSSStructuralPseudoSelectors.h in Headers */,
@@ -1290,6 +1307,7 @@
62857D4E1D39A40A008DC254 /* HTMLTokenizerCharacters.h in Headers */,
62857D4D1D39A40A008DC254 /* HTMLTokenizerStates.h in Headers */,
62857D501D39A411008DC254 /* HTMLTokens.h in Headers */,
+ 626BE1E41DF3819500C49514 /* HTMLDOMUtils.h in Headers */,
62857D7B1D39A452008DC254 /* HTMLNamespaces.h in Headers */,
62857D581D39A416008DC254 /* HTMLParser.h in Headers */,
62857D571D39A411008DC254 /* HTMLEOFToken.h in Headers */,
@@ -1346,7 +1364,6 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
- 62F7E5A31DEB63F900DEF09B /* HTMLRange+Private.h in Headers */,
62ECBF901C0B6D3700AF847B /* HTMLKit.h in Headers */,
62ECBF911C0B6D3700AF847B /* HTMLKitErrorDomain.h in Headers */,
62ECBF9F1C0B6D3900AF847B /* HTMLParser.h in Headers */,
@@ -1386,6 +1403,9 @@
62ECBFC41C0B6D4200AF847B /* CSSNthExpressionSelector.h in Headers */,
62ECBFC51C0B6D4200AF847B /* CSSPseudoFunctionSelector.h in Headers */,
62ECBFC61C0B6D4300AF847B /* CSSCombinatorSelector.h in Headers */,
+ 62F7E5A31DEB63F900DEF09B /* HTMLRange+Private.h in Headers */,
+ 626BE1E31DF3819500C49514 /* HTMLDOMUtils.h in Headers */,
+ 621CC49C1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */,
625D0F041C2717DE00D7BEB0 /* HTMLNode+Private.h in Headers */,
62ECBFC71C0B6D4300AF847B /* CSSCompoundSelector.h in Headers */,
62ECBFB11C0B6D3C00AF847B /* HTMLNodeTraversal.h in Headers */,
@@ -1404,7 +1424,6 @@
62ECBF9E1C0B6D3800AF847B /* HTMLEOFToken.h in Headers */,
62ECBFA01C0B6D3900AF847B /* HTMLStackOfOpenElements.h in Headers */,
62ECBFA11C0B6D3900AF847B /* HTMLListOfActiveFormattingElements.h in Headers */,
- 621CC49C1DEA71D800D1992A /* HTMLNodeIterator+Private.h in Headers */,
62ECBFA21C0B6D3900AF847B /* HTMLElementTypes.h in Headers */,
62ECBFA31C0B6D3900AF847B /* HTMLElementAdjustment.h in Headers */,
62ECBFA41C0B6D3900AF847B /* HTMLParserInsertionModes.h in Headers */,
@@ -1712,6 +1731,7 @@
62ECBF471C0B6B7A00AF847B /* CSSCompoundSelector.m in Sources */,
62567F521C0CB5750025D458 /* HTMLDOMTokenList.m in Sources */,
624C777E1DE9D05E00DD6DFA /* HTMLCharacterData.m in Sources */,
+ 626BE1E61DF3819600C49514 /* HTMLDOMUtils.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1796,6 +1816,7 @@
62857CB81D398992008DC254 /* HTMLDOMTokenList.m in Sources */,
62857C831D398912008DC254 /* HTMLEOFToken.m in Sources */,
624C77811DE9D05E00DD6DFA /* HTMLCharacterData.m in Sources */,
+ 626BE1E91DF3819600C49514 /* HTMLDOMUtils.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1850,6 +1871,7 @@
62857D171D39A32A008DC254 /* HTMLDOMTokenList.m in Sources */,
62857D0A1D39A324008DC254 /* HTMLEOFToken.m in Sources */,
624C77801DE9D05E00DD6DFA /* HTMLCharacterData.m in Sources */,
+ 626BE1E81DF3819600C49514 /* HTMLDOMUtils.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1934,6 +1956,7 @@
62ECBF8F1C0B6D2A00AF847B /* CSSCompoundSelector.m in Sources */,
62567F531C0CB5750025D458 /* HTMLDOMTokenList.m in Sources */,
624C777F1DE9D05E00DD6DFA /* HTMLCharacterData.m in Sources */,
+ 626BE1E71DF3819600C49514 /* HTMLDOMUtils.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/Sources/HTMLDOMUtils.h b/Sources/HTMLDOMUtils.h
new file mode 100644
index 0000000..fba89a6
--- /dev/null
+++ b/Sources/HTMLDOMUtils.h
@@ -0,0 +1,13 @@
+//
+// HTMLDOMUtils.h
+// HTMLKit
+//
+// Created by Iska on 03/12/16.
+// Copyright © 2016 BrainCookie. All rights reserved.
+//
+
+#import
+
+@interface HTMLDOMUtils : NSObject
+
+@end
diff --git a/Sources/HTMLDOMUtils.m b/Sources/HTMLDOMUtils.m
new file mode 100644
index 0000000..7ab2d01
--- /dev/null
+++ b/Sources/HTMLDOMUtils.m
@@ -0,0 +1,13 @@
+//
+// HTMLDOMUtils.m
+// HTMLKit
+//
+// Created by Iska on 03/12/16.
+// Copyright © 2016 BrainCookie. All rights reserved.
+//
+
+#import "HTMLDOMUtils.h"
+
+@implementation HTMLDOMUtils
+
+@end
diff --git a/Sources/HTMLRange.m b/Sources/HTMLRange.m
index f58ca01..8d1d77a 100644
--- a/Sources/HTMLRange.m
+++ b/Sources/HTMLRange.m
@@ -10,6 +10,7 @@
#import "HTMLDocument.h"
#import "HTMLKitDOMExceptions.h"
#import "HTMLDocument+Private.h"
+#import "HTMLDOMUtils.h"
@interface HTMLRange ()
{
@@ -47,11 +48,7 @@
- (HTMLNode *)commonAncestorContainer
{
- HTMLNode *container = _startContainer;
- while (![container containsNode:_endContainer]) {
- container = container.parentNode;
- }
- return container;
+ return GetCommonAncestorContainer(_startContainer, _endContainer);
}
- (HTMLNode *)rootNode
diff --git a/Sources/include/HTMLDOM.h b/Sources/include/HTMLDOM.h
index 50eadbc..c269c14 100644
--- a/Sources/include/HTMLDOM.h
+++ b/Sources/include/HTMLDOM.h
@@ -14,6 +14,7 @@
#import "HTMLComment.h"
#import "HTMLText.h"
#import "HTMLTemplate.h"
+#import "HTMLRange.h"
#import "HTMLDOMTokenList.h"
#import "HTMLNodeIterator.h"
#import "HTMLTreeWalker.h"
diff --git a/Sources/module.modulemap b/Sources/module.modulemap
index 4172c3e..5f6af82 100644
--- a/Sources/module.modulemap
+++ b/Sources/module.modulemap
@@ -1,30 +1,37 @@
module HTMLKit {
umbrella header "HTMLKit.h"
- private header "CSSCodePoints.h"
- private header "CSSInputStream.h"
- private header "HTMLCharacterToken.h"
- private header "HTMLCommentToken.h"
- private header "HTMLDOCTYPEToken.h"
- private header "HTMLElementAdjustment.h"
- private header "HTMLElementTypes.h"
- private header "HTMLEOFToken.h"
- private header "HTMLInputStreamReader.h"
- private header "HTMLListOfActiveFormattingElements.h"
- private header "HTMLMarker.h"
- private header "HTMLNode+Private.h"
- private header "HTMLNodeTraversal.h"
- private header "HTMLParseErrorToken.h"
- private header "HTMLParserInsertionModes.h"
- private header "HTMLStackOfOpenElements.h"
- private header "HTMLTagToken.h"
- private header "HTMLToken.h"
- private header "HTMLTokenizer.h"
- private header "HTMLTokenizerCharacters.h"
- private header "HTMLTokenizerEntities.h"
- private header "HTMLTokenizerStates.h"
- private header "HTMLTokens.h"
-
module * { export * }
export *
+
+ explicit module Private {
+ header "CSSCodePoints.h"
+ header "CSSInputStream.h"
+ header "HTMLCharacterToken.h"
+ header "HTMLCommentToken.h"
+ header "HTMLDOCTYPEToken.h"
+ header "HTMLElementAdjustment.h"
+ header "HTMLElementTypes.h"
+ header "HTMLEOFToken.h"
+ header "HTMLInputStreamReader.h"
+ header "HTMLListOfActiveFormattingElements.h"
+ header "HTMLMarker.h"
+ header "HTMLNodeTraversal.h"
+ header "HTMLDOMUtils.h"
+ header "HTMLParseErrorToken.h"
+ header "HTMLParserInsertionModes.h"
+ header "HTMLStackOfOpenElements.h"
+ header "HTMLTagToken.h"
+ header "HTMLToken.h"
+ header "HTMLTokenizer.h"
+ header "HTMLTokenizerCharacters.h"
+ header "HTMLTokenizerEntities.h"
+ header "HTMLTokenizerStates.h"
+ header "HTMLTokens.h"
+ header "HTMLNode+Private.h"
+ header "HTMLCharacterData+Private.h"
+ header "HTMLRange+Private.h"
+ header "HTMLNodeIterator+Private.h"
+ header "HTMLParser+Private.h"
+ }
}