]> git.sesse.net Git - mlt/blobdiff - src/modules/xml/consumer_xml.c
Merge branch 'master' of dennedy.org:git/mltframework.org/mlt
[mlt] / src / modules / xml / consumer_xml.c
index 3bcf818ec67330a28b94baf85859c809d3faed55..c9823110e493d609ce710d37b97953dabdc8c8a7 100644 (file)
@@ -23,6 +23,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <locale.h>
 #include <libxml/tree.h>
 
 #define ID_SIZE 128
@@ -635,6 +636,9 @@ xmlDocPtr xml_make_doc( mlt_consumer consumer, mlt_service service )
 
        xmlDocSetRootElement( doc, root );
 
+       // Indicate the numeric locale
+       xmlNewProp( root, _x("LC_NUMERIC"), _x( setlocale( LC_NUMERIC, NULL ) ) );
+
        // If we have root, then deal with it now
        if ( mlt_properties_get( properties, "root" ) != NULL )
        {
@@ -752,13 +756,10 @@ static int consumer_start( mlt_consumer this )
                        xmlDocDumpMemoryEnc( doc, &buffer, &length, "utf-8" );
                        mlt_properties_set( properties, resource, _s(buffer) );
 #ifdef WIN32
-                       xmlFreeFunc myXmlFree = NULL;
-                       xmlMemGet( &myXmlFree, NULL, NULL, NULL);
-                       if ( myXmlFree )
-                               myXmlFree( buffer );
-#else
-                       xmlFree( buffer );
+                       xmlFreeFunc xmlFree = NULL;
+                       xmlMemGet( &xmlFree, NULL, NULL, NULL);
 #endif
+                       xmlFree( buffer );
                }
                else
                {