mxml_node * node_identify( void * doc, const mxml_char_t * str, parsing_context *ctx ) { mxml_node * doc_node = (mxml_node *)doc; mxml_node * ident_node = NULL; UNUSED_ARG( ctx ); if ( !doc_node ) return NULL; if ( is_declaration ( str ) ) ident_node = create_declaration( doc_node ); else if ( is_comment( str ) ) ident_node = create_comment( doc_node ); else if ( is_unknown( str ) ) ident_node = create_unknown( doc_node ); else if ( is_element( str ) ) ident_node = create_element( XML_T(""), doc_node ); else if ( is_text( str ) ) ident_node = create_text( doc_node ); else ident_node = create_unknown( doc_node ); return ident_node; }
static int read_msg_actions(xmlNode *an, cp_actions_t **dst) { xmlNode *n; const char *s; int res = RES_OK; if ((!an) || (!dst)) return RES_INTERNAL_ERR; *dst = (cp_actions_t*)cds_malloc(sizeof(cp_actions_t)); if (!(*dst)) return RES_MEMORY_ERR; memset(*dst, 0, sizeof(cp_actions_t)); n = find_node(an, "im-handling", msg_rules_ns); if (n) { /* may be only one sub-handling node? */ s = get_node_value(n); (*dst)->unknown = create_unknown(sizeof(msg_handling_t)); if (!(*dst)->unknown) return RES_MEMORY_ERR; res = str2msg_handling(s, (msg_handling_t*)(*dst)->unknown->data); } return res; }