summaryrefslogtreecommitdiffstats
path: root/src/xml/repr-io.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/xml/repr-io.cpp')
-rw-r--r--src/xml/repr-io.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/xml/repr-io.cpp b/src/xml/repr-io.cpp
index 28e7c4f21..26537d750 100644
--- a/src/xml/repr-io.cpp
+++ b/src/xml/repr-io.cpp
@@ -395,10 +395,10 @@ sp_repr_do_read (xmlDocPtr doc, const gchar *default_ns)
root = NULL;
break;
}
- } else if ( node->type == XML_COMMENT_NODE ) {
- Node *comment=sp_repr_svg_read_node(rdoc, node, default_ns, prefix_map);
- rdoc->appendChild(comment);
- Inkscape::GC::release(comment);
+ } else if ( node->type == XML_COMMENT_NODE || node->type == XML_PI_NODE ) {
+ Node *repr=sp_repr_svg_read_node(rdoc, node, default_ns, prefix_map);
+ rdoc->appendChild(repr);
+ Inkscape::GC::release(repr);
}
}
@@ -463,6 +463,9 @@ sp_repr_svg_read_node (Document *xml_doc, xmlNodePtr node, const gchar *default_
if (node->type == XML_COMMENT_NODE)
return xml_doc->createComment((const gchar *)node->content);
+ if (node->type == XML_PI_NODE)
+ return xml_doc->createPI((const gchar *)node->name, (const gchar *)node->content);
+
if (node->type == XML_ENTITY_DECL) return NULL;
sp_repr_qualified_name (c, 256, node->ns, node->name, default_ns, prefix_map);
@@ -717,6 +720,8 @@ sp_repr_write_stream (Node *repr, Writer &out, gint indent_level,
repr_quote_write (out, repr->content());
} else if (repr->type() == Inkscape::XML::COMMENT_NODE) {
out.printf( "<!--%s-->", repr->content() );
+ } else if (repr->type() == Inkscape::XML::PI_NODE) {
+ out.printf( "<?%s %s?>", repr->name(), repr->content() );
} else if (repr->type() == Inkscape::XML::ELEMENT_NODE) {
sp_repr_write_stream_element(repr, out, indent_level, add_whitespace, elide_prefix, repr->attributeList(), inlineattrs, indent);
} else {