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;
}
}
- }
}
}