* later, convert it to text based
* later, convert it to text
conditional_add_failure(xmlNodePtr failed, xmlNodePtr target, int operation, int return_code){    FNIN();    gboolean was_error = FALSE;        if(return_code < 0)    {	was_error = TRUE;		cl_log(LOG_DEBUG, "Action %d failed (cde=%d)", operation, return_code);		xmlNodePtr xml_node = xmlNewNode(NULL, XML_FAIL_TAG_CIB);	xmlSetProp(xml_node, XML_FAILCIB_ATTR_ID, ID(target));	xmlSetProp(xml_node, XML_FAILCIB_ATTR_OBJTYPE, TYPE(target));		char buffer[20]; // will handle 64 bit integers		/* for now just put in the operation code	 * later, convert it to text based	 */	sprintf(buffer, "%d", operation);	xmlSetProp(xml_node, XML_FAILCIB_ATTR_OP, buffer);		/* for now just put in the return code	 * later, convert it to text based on the operation	 */	sprintf(buffer, "%d", return_code);	xmlSetProp(xml_node, XML_FAILCIB_ATTR_REASON, buffer);		xmlAddChild(failed, xml_node);    }    FNRET(was_error);}