strcmp( name, "height" ) != 0 )
{
char *value = mlt_properties_get_value( properties, i );
- p = xmlNewChild( node, NULL, "property", NULL );
- xmlNewProp( p, "name", mlt_properties_get_name( properties, i ) );
if ( strcmp( context->root, "" ) && !strncmp( value, context->root, strlen( context->root ) ) )
- xmlNodeSetContent( p, value + strlen( context->root ) + 1 );
- else
- xmlNodeSetContent( p, value );
+ value += strlen( context->root ) + 1;
+ p = xmlNewTextChild( node, NULL, "property", value );
+ xmlNewProp( p, "name", name );
}
}
}
char *value = mlt_properties_get_value( properties, i );
if ( value != NULL )
{
- p = xmlNewChild( node, NULL, "property", NULL );
- xmlNewProp( p, "name", mlt_properties_get_name( properties, i ) );
- if ( context->root != NULL && strcmp( context->root, "" ) && !strncmp( value, context->root, strlen( context->root ) ) )
- xmlNodeSetContent( p, value + strlen( context->root ) + 1 );
- else
- xmlNodeSetContent( p, value );
+ if ( strcmp( context->root, "" ) && !strncmp( value, context->root, strlen( context->root ) ) )
+ value += strlen( context->root ) + 1;
+ p = xmlNewTextChild( node, NULL, "property", value );
+ xmlNewProp( p, "name", name );
}
}
}
{
xmlChar *buffer = NULL;
int length = 0;
- xmlDocDumpMemory( doc, &buffer, &length );
+ xmlDocDumpMemoryEnc( doc, &buffer, &length, "utf-8" );
mlt_properties_set( properties, resource, buffer );
xmlFree( buffer );
}
else
{
- xmlSaveFormatFile( resource, doc, 1 );
+ xmlSaveFormatFileEnc( resource, doc, "utf-8", 1 );
}
// Close the document
if ( context->property != NULL )
mlt_properties_set( properties, context->property, value == NULL ? "" : value );
-
+
// Tell parser to collect any further nodes for serialisation
context->is_value = 1;
xmlFreeDoc( context->value_doc );
context->value_doc = NULL;
}
-
+
// Close this property handling
free( context->property );
context->property = NULL;
params_to_entities( context );
}
+// TODO: Check this with Dan... I think this is for westley parameterisation
+// but it's breaking standard escaped entities (like < etc).
static void on_entity_declaration( void *ctx, const xmlChar* name, int type,
const xmlChar* publicId, const xmlChar* systemId, xmlChar* content)
{
xmlAddDocEntity( context->entity_doc, name, type, publicId, systemId, content );
}
-xmlEntityPtr on_get_entity( void *ctx, const xmlChar* name )
+// TODO: Check this functionality (see on_entity_declaration)
+static xmlEntityPtr on_get_entity( void *ctx, const xmlChar* name )
{
struct _xmlParserCtxt *xmlcontext = ( struct _xmlParserCtxt* )ctx;
deserialise_context context = ( deserialise_context )( xmlcontext->_private );
sax->cdataBlock = on_characters;
sax->internalSubset = on_internal_subset;
sax->entityDecl = on_entity_declaration;
- sax->getEntity = on_get_entity;
+ //sax->getEntity = on_get_entity;
// Setup libxml2 SAX parsing
xmlInitParser();