diff -Nur wbxml2-0.9.0/configure.in wbxml2-0.9.0-new/configure.in --- wbxml2-0.9.0/configure.in 2004-02-26 18:39:48.000000000 +0100 +++ wbxml2-0.9.0-new/configure.in 2005-07-16 15:38:18.000000000 +0200 @@ -46,4 +46,4 @@ AC_FUNC_MEMCMP AC_FUNC_VPRINTF -AC_OUTPUT(Makefile wbxml2.spec src/Makefile tools/Makefile) +AC_OUTPUT(Makefile wbxml2.spec src/Makefile tools/Makefile libwbxml2.pc) diff -Nur wbxml2-0.9.0/libwbxml2.pc.in wbxml2-0.9.0-new/libwbxml2.pc.in --- wbxml2-0.9.0/libwbxml2.pc.in 1970-01-01 01:00:00.000000000 +0100 +++ wbxml2-0.9.0-new/libwbxml2.pc.in 2005-07-16 15:39:10.000000000 +0200 @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libwbxml2 +Description: C wbxml library +Version: @VERSION@ +Requires: libxml-2.0 >= 2.6 +Libs: -L${libdir} -lwbxml2 +Cflags: -I${includedir} + diff -Nur wbxml2-0.9.0/Makefile.am wbxml2-0.9.0-new/Makefile.am --- wbxml2-0.9.0/Makefile.am 2004-02-29 17:59:26.000000000 +0100 +++ wbxml2-0.9.0-new/Makefile.am 2005-07-16 15:42:10.000000000 +0200 @@ -5,6 +5,9 @@ SUBDIRS = src tools +pkgconfigdir=$(libdir)/pkgconfig +pkgconfig_DATA = libwbxml2.pc + wbxmldocdir = ${prefix}/share/doc/wbxml2-${VERSION} wbxmldoc_DATA = \ AUTHORS\ diff -Nur wbxml2-0.9.0/src/wbxml_tables.c wbxml2-0.9.0-new/src/wbxml_tables.c --- wbxml2-0.9.0/src/wbxml_tables.c 2004-02-25 18:57:14.000000000 +0100 +++ wbxml2-0.9.0-new/src/wbxml_tables.c 2005-07-16 15:33:08.000000000 +0200 @@ -1624,7 +1624,7 @@ { "Reserved for future use", 0x00, 0x30 }, { "VerDTD", 0x00, 0x31 }, { "VerProto", 0x00, 0x32 }, - { "NumberOfChanged",0x00, 0x33 }, + { "NumberOfChanges",0x00, 0x33 }, { "MoreData", 0x00, 0x34 }, /* Code Page 1: MetInf11 */ diff -u wbxml2-0.9.0/src/wbxml_encoder.c ../wbxml2-0.9.0/src/wbxml_encoder.c --- wbxml2-0.9.0/src/wbxml_encoder.c 2004-02-26 20:04:58.000000000 +0100 +++ ../wbxml2-0.9.0/src/wbxml_encoder.c 2004-09-09 17:04:24.000000000 +0200 @@ -855,7 +855,20 @@ /* Must never happen */ return WBXML_ERROR_INTERNAL; } - + +#if defined( WBXML_SUPPORT_SYNCML ) + /* If this is a SyncML document ? */ + if ((encoder->tree->lang->langID == WBXML_LANG_SYNCML_SYNCML10) || + (encoder->tree->lang->langID == WBXML_LANG_SYNCML_SYNCML11)) + { + if (node->content) { + if (wbxml_buffer_get_cstr(node->content)[0] == 0x0a && wbxml_buffer_len(node->content) == 1) { + wbxml_buffer_insert_cstr(node->content, "\r", 0); + } + } + } +#endif /* WBXML_SUPPORT_SYNCML */ + /* Add text into CDATA Buffer */ if (!wbxml_buffer_append(encoder->cdata, node->content)) return WBXML_ERROR_ENCODER_APPEND_DATA; diff -u wbxml2-0.9.0/src/wbxml_parser.c ../wbxml2-0.9.0/src/wbxml_parser.c --- wbxml2-0.9.0/src/wbxml_parser.c 2004-02-26 19:58:54.000000000 +0100 +++ ../wbxml2-0.9.0/src/wbxml_parser.c 2004-09-09 17:31:19.000000000 +0200 @@ -1251,6 +1251,17 @@ if (is_token(parser, WBXML_PI)) return parse_pi(parser); + /** + * @note Non standard behaviour because of a Nokia 6600 bug + * that generate switch pages in wrong places. + * + * Thanks to Balaji Alasyam for finding this bug. + */ + + /* switchPage */ + if ( is_token(parser, WBXML_SWITCH_PAGE) ) + return parse_switch_page(parser, WBXML_TAG_TOKEN); + /** @note We have recurrency here ! */ return parse_element(parser); } diff -u wbxml2-0.9.0/src/wbxml_tree.c ../wbxml2-0.9.0/src/wbxml_tree.c --- wbxml2-0.9.0/src/wbxml_tree.c 2004-02-25 18:57:14.000000000 +0100 +++ ../wbxml2-0.9.0/src//wbxml_tree.c 2006-04-12 11:37:32.000000000 +0200 @@ -296,6 +296,7 @@ WBXML_DECLARE(WBXMLSyncMLDataType) wbxml_tree_node_get_syncml_data_type(WBXMLTreeNode *node) { WBXMLTreeNode *tmp_node = NULL; + WBXMLTreeNode *meta_tmp_node = NULL; if (node == NULL) return WBXML_SYNCML_DATA_TYPE_NORMAL; @@ -306,18 +307,14 @@ (WBXML_STRCMP(wbxml_tag_get_xml_name(node->name), "Data") == 0)) { /* Go to Parent element (or Parent of Parent) and search for */ - if (((node->parent != NULL) && - (node->parent->children != NULL) && - ((tmp_node = wbxml_tree_node_elt_get_from_name(node->parent->children, "Meta", FALSE)) != NULL)) || - ((node->parent != NULL) && - (node->parent->parent != NULL) && - (node->parent->parent->children != NULL) && - ((tmp_node = wbxml_tree_node_elt_get_from_name(node->parent->parent->children, "Meta", FALSE)) != NULL))) + if ((node->parent != NULL && node->parent->children != NULL && + (((meta_tmp_node = wbxml_tree_node_elt_get_from_name(node->parent->children, "Meta", FALSE)) != NULL && + (tmp_node = wbxml_tree_node_elt_get_from_name(meta_tmp_node->children, "Type", FALSE)) != NULL) || + (node->parent != NULL && node->parent->parent != NULL && node->parent->parent->children != NULL && + (meta_tmp_node = wbxml_tree_node_elt_get_from_name(node->parent->parent->children, "Meta", FALSE)) != NULL && + (tmp_node = wbxml_tree_node_elt_get_from_name(meta_tmp_node->children, "Type", FALSE)) != NULL)))) { - /* Search for */ - if ((tmp_node = wbxml_tree_node_elt_get_from_name(tmp_node->children, "Type", FALSE)) != NULL) - { - /* Check value */ + /* Check value */ if ((tmp_node->children != NULL) && (tmp_node->children->type == WBXML_TREE_TEXT_NODE)) { /* application/vnd.syncml-devinf+wbxml */ if (wbxml_buffer_compare_cstr(tmp_node->children->content, "application/vnd.syncml-devinf+wbxml") == 0) { @@ -344,7 +341,6 @@ return WBXML_SYNCML_DATA_TYPE_VCALENDAR; } } - } } }