crm_trace("Buffer coppied");
dump_xml_formatted(xmlNodePtr an_xml_node) {	int       len        = 0;	xmlChar  *xml_buffer = NULL;	char     *buffer     = NULL;	xmlDocPtr foo        = NULL;	xmlNodePtr xml_node  = copy_xml_node_recursive(an_xml_node);		if (xml_node == NULL) {		return NULL;			} else {	  // reset the doc pointer		crm_trace("Creating doc pointer for %s", xml_node->name);		foo = xmlNewDoc("1.0");		xmlDocSetRootElement(foo, xml_node);		xmlSetTreeDoc(xml_node, foo);		crm_trace("Doc pointer set for %s", xml_node->name);	}	crm_trace("Initializing Parser");	xmlInitParser();	crm_trace("Dumping data");	xmlDocDumpFormatMemory(xml_node->doc, &xml_buffer, &len,1);	crm_trace("Cleaning up parser");	xmlCleanupParser();	crm_trace("Moving memory into crm_ space");	if(xml_buffer != NULL && len > 0) {		xmlFree(xml_buffer);		/* copy the text into crm_ memory */ 		buffer = crm_strdup(xml_buffer);	}		free_xml(xml_node);	return buffer;}