set_xml_property_copy( target, prop_name, left_value); 
crm_xml_add(target, prop_name, left_value); 
add_xml_object(crm_data_t *parent, crm_data_t *target, const crm_data_t *update){	const char *object_id = NULL;	const char *object_name = NULL;	const char *right_val = NULL;		int result = 0;	CRM_DEV_ASSERT(update != NULL);	if(crm_assert_failed) { return 0; }	object_name = crm_element_name(update);	object_id = ID(update);	CRM_DEV_ASSERT(object_name != NULL);	if(crm_assert_failed) { return 0; }		if(target == NULL && object_id == NULL) {		/*  placeholder object */		target = find_xml_node(parent, object_name, FALSE);	} else if(target == NULL) {		target = find_entity(parent, object_name, object_id);	}	if(target == NULL) {		target = add_node_copy(parent, update);		crm_debug_2("Added  <%s id=%s>",			    crm_str(object_name), crm_str(object_id));		CRM_DEV_ASSERT(target != NULL);		return 0;			} 	crm_debug_2("Found node <%s id=%s> to update",		    crm_str(object_name), crm_str(object_id));		xml_prop_iter(update, prop_name, left_value,		      right_val = crm_element_value(target, prop_name);		      if(right_val == NULL) {			      set_xml_property_copy(				      target, prop_name, left_value);			      crm_debug_2("\t%s: %s (added)",					  crm_str(prop_name),					  crm_str(left_value));			      		      } else if(safe_str_neq(left_value, right_val)) {			      set_xml_property_copy(				      target, prop_name, left_value);			      crm_debug_2("\t%s: %s->%s",					  crm_str(prop_name),					  crm_str(left_value),					  right_val);		      }		);	CRM_DEV_ASSERT(cl_is_allocated(object_name));	if(object_id != NULL) {		CRM_DEV_ASSERT(cl_is_allocated(object_id));	}		crm_debug_3("Processing children of <%s id=%s>",		    crm_str(object_name), crm_str(object_id));		xml_child_iter(		update, a_child, NULL, 		int tmp_result = 0;		crm_debug_3("Updating child <%s id=%s>",			    crm_element_name(a_child), ID(a_child));				tmp_result = add_xml_object(target, NULL, a_child);				if(tmp_result < 0) {			crm_err("Error updating child <%s id=%s>",				crm_element_name(a_child), ID(a_child));						/*  only the first error is likely to be interesting */			if(result >= 0) {				result = tmp_result;			}		}		);	crm_debug_3("Finished with <%s id=%s>",		    crm_str(object_name), crm_str(object_id));	return result;}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/f0d6f413d7ffb14c480325474793065aa4203ea4/xml.c/clean/lib/crm/common/xml.c