Author: rfm
Date: Mon Nov 2 19:10:38 2015
New Revision: 39122
URL: http://svn.gna.org/viewcvs/gnustep?rev=39122&view=rev
Log:
osx compatibility fixup
Modified:
libs/base/trunk/ChangeLog
libs/base/trunk/Source/NSXMLElement.m
libs/base/trunk/Source/NSXMLNode.m
Modified: libs/base/trunk/ChangeLog
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/ChangeLog?rev=39122&r1=39121&r2=39122&view=diff
==============================================================================
--- libs/base/trunk/ChangeLog (original)
+++ libs/base/trunk/ChangeLog Mon Nov 2 19:10:38 2015
@@ -1,3 +1,9 @@
+2015-11-02 Richard Frith-Macdonald <[email protected]>
+
+ * Source/NSXMLElement.m: (insertChild:atIndex:) if the child already
+ has a parent, detach from that before adding to the new parent.
+ OSX compatibility fix.
+
2015-11-01 Richard Frith-Macdonald <[email protected]>
* Source/NSXMLDocument.m: When libxml2 is not enabled, create a
Modified: libs/base/trunk/Source/NSXMLElement.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/NSXMLElement.m?rev=39122&r1=39121&r2=39122&view=diff
==============================================================================
--- libs/base/trunk/Source/NSXMLElement.m (original)
+++ libs/base/trunk/Source/NSXMLElement.m Mon Nov 2 19:10:38 2015
@@ -648,7 +648,6 @@
// Check to make sure this is a valid addition...
NSAssert(nil != child, NSInvalidArgumentException);
NSAssert(index <= childCount, NSInvalidArgumentException);
- NSAssert(nil == [child parent], NSInvalidArgumentException);
NSAssert(NSXMLAttributeKind != theKind, NSInvalidArgumentException);
NSAssert(NSXMLDTDKind != theKind, NSInvalidArgumentException);
NSAssert(NSXMLDocumentKind != theKind, NSInvalidArgumentException);
@@ -657,6 +656,11 @@
NSAssert(NSXMLInvalidKind != theKind, NSInvalidArgumentException);
NSAssert(NSXMLNamespaceKind != theKind, NSInvalidArgumentException);
NSAssert(NSXMLNotationDeclarationKind != theKind,
NSInvalidArgumentException);
+
+ if (nil != [child parent])
+ {
+ [child detach];
+ }
[self _insertChild: child atIndex: index];
}
Modified: libs/base/trunk/Source/NSXMLNode.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/NSXMLNode.m?rev=39122&r1=39121&r2=39122&view=diff
==============================================================================
--- libs/base/trunk/Source/NSXMLNode.m (original)
+++ libs/base/trunk/Source/NSXMLNode.m Mon Nov 2 19:10:38 2015
@@ -245,7 +245,29 @@
xmlFree(contentA);
xmlFree(contentB);
}
- // FIXME: Handle more node types
+ if (1)
+ {
+ xmlChar *contentA = NULL;
+ xmlChar *contentB = NULL;
+
+ // FIXME: Handle more node types
+ if (!isEqualAttributes(nodeA, nodeB))
+ {
+ return NO;
+ }
+
+ // Get the value of any text node underneath the current element.
+ contentA = xmlNodeGetContent((const xmlNodePtr)nodeA);
+ contentB = xmlNodeGetContent((const xmlNodePtr)nodeB);
+ if (xmlStrcmp(contentA, contentB) != 0)
+ {
+ xmlFree(contentA);
+ xmlFree(contentB);
+ return NO;
+ }
+ xmlFree(contentA);
+ xmlFree(contentB);
+ }
return YES;
}
@@ -541,8 +563,9 @@
if (ns->href == NULL)
{
- xmlNsPtr ns1 = xmlSearchNs(parentNode->doc, parentNode,
ns->prefix);
-
+ xmlNsPtr ns1;
+
+ ns1 = xmlSearchNs(parentNode->doc, parentNode, ns->prefix);
if (ns1 != NULL)
{
cleanup_namespaces(childNode, ns1);
@@ -552,8 +575,10 @@
/*
else if (ns->prefix == NULL)
{
- xmlNsPtr ns1 = xmlSearchNsByHref(parentNode->doc,
parentNode, ns->href);
-
+ xmlNsPtr ns1;
+
+ ns1
+ = xmlSearchNsByHref(parentNode->doc, parentNode, ns->href);
if (ns1 != NULL)
{
cleanup_namespaces(childNode, ns1);
@@ -609,9 +634,9 @@
}
}
- if (mergeTextNodes ||
- ((childNode->type != XML_TEXT_NODE) &&
- (parentNode->type != XML_TEXT_NODE)))
+ if (mergeTextNodes
+ || ((childNode->type != XML_TEXT_NODE)
+ && (parentNode->type != XML_TEXT_NODE)))
{
// this uses the built-in libxml functions which merge adjacent text
nodes
xmlNodePtr addedNode = NULL;
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs