From 997026f2432dcb45230f2aa37154c8e6aa26f66a Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Fri, 24 Dec 2021 11:24:45 +0900 Subject: [PATCH] Imported Upstream version 0.11.5 --- .travis.yml | 22 ++++++++++ CMakeLists.txt | 10 ++++- ChangeLog | 22 ++++++++++ INSTALL | 3 ++ THANKS | 2 + src/CMakeLists.txt | 41 +++++++++++++++---- src/wbxml_base64.c | 4 +- src/wbxml_buffers.c | 10 ++--- src/wbxml_buffers.h | 4 +- src/wbxml_charset.c | 2 +- src/wbxml_conv.c | 4 +- src/wbxml_elt.c | 12 +++--- src/wbxml_encoder.c | 15 ++++--- src/wbxml_lists.c | 4 +- src/wbxml_parser.c | 6 ++- src/wbxml_tables.c | 31 +++++++++++++- src/wbxml_tree.c | 4 +- test/api/CMakeLists.txt | 9 ++++ test/api/test_wbxml_base64.c | 25 +++++------ test/api/test_wbxml_buffers.c | 38 ++++++++--------- test/api/test_wbxml_errors.c | 10 ++--- test/tools/CMakeLists.txt | 2 +- .../activesync-040-search-response.xml | 26 ++++++++++++ tools/CMakeLists.txt | 8 ++++ 24 files changed, 236 insertions(+), 78 deletions(-) create mode 100644 .travis.yml create mode 100644 test/tools/activesync/activesync-040-search-response.xml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..c156415 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ +language: c +compiler: + - gcc + - clang +os: + - linux + - osx + +before_install: + - if [ ${TRAVIS_OS_NAME} == "osx" ]; + then brew update; else + sudo apt-get update -qq; + fi +install: + - if [ ${TRAVIS_OS_NAME} == "osx" ]; + then brew install check expat; else + sudo apt-get install -qq libexpat1-dev check; + fi + +before_script: cmake . -Bbuild +script: cd build && make && make test + diff --git a/CMakeLists.txt b/CMakeLists.txt index dce5f21..8a810bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ PROJECT( libwbxml C ) SET( LIBWBXML_VERSION_MAJOR "0" ) SET( LIBWBXML_VERSION_MINOR "11" ) -SET( LIBWBXML_VERSION_PATCH "4" ) +SET( LIBWBXML_VERSION_PATCH "5" ) IF( LIBWBXML_VERSION_BETA ) IF( LIBWBXML_VERSION_BETA VERSION_GREATER 90 ) MATH( EXPR LIBWBXML_VERSION_MINOR "${LIBWBXML_VERSION_MINOR} - 1" ) @@ -134,6 +134,8 @@ ELSE( DIFF_PROGRAM ) SET( ENABLE_DIFF OFF ) ENDIF( DIFF_PROGRAM ) +OPTION( BUILD_SHARED_LIBS "Build wbxml as shared library" ON ) +OPTION( BUILD_STATIC_LIBS "Build wbxml as static library" OFF ) OPTION( WBXML_LIB_VERBOSE "verbose mode" OFF ) OPTION( WBXML_ENCODER_USE_STRTBL "enable string tables" ON ) OPTION( WBXML_SUPPORT_WML "enable WML support" ON ) @@ -249,6 +251,12 @@ IF( RELEASE_CANDIDATE ) SET( LIBWBXML_VERSION "${LIBWBXML_VERSION}-RC${RELEASE_CANDIDATE}" ) ENDIF( RELEASE_CANDIDATE ) +find_program(CCACHE_FOUND ccache) +if(CCACHE_FOUND) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) +endif(CCACHE_FOUND) + # ADD_SUBDIRECTORY( wbxmlTestSuite ) SET( CPACK_GENERATOR "TGZ;TBZ2" ) # This line is need for a CMake (Version 2.4.7) Bug - Fixed in CVS diff --git a/ChangeLog b/ChangeLog index 5926b77..d8894bc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2017-02-12 Michael Bell + * Released 0.11.5 + * Fixed ActiveSync element data of code pages ResolveRecipients and + GAL (issue #52 from Thomas Führer, fixed in pull request #53). + * Added support for MacOS X to Travis CI environment. + * Added support for ccache (pull request #44 from Gaurav Gupta). + * Fixed some memory leaks (pull requests #43 and #45 from Renu Tyagi). + * Added definitions of ActiveSync protocoll v16.0 + (pull request #32 from Gil Hartmann). + * Avoid malloc typecasts (pull requests #31, #33, #34, #35, #36, + #37, #38, #39 and #40 from Gaurav Gupta). + * Added support for automated testing with travis-ci.org + * Fixed memory leak in function wbxml_strtbl_collect_words + of wbxml_encoder (pull request #21 from Gaurav Gupta). + * Fixed memory leak in function wbxml_strtbl_check_references + of wbxml_encoder (pull request #20 from Gaurav Gupta). + * Added support to build a static library + (issue #22 and pull requests #23, #24, #25, #26 and #27 + from Gaurav Gupta). + * If pkg-config is used then use the provided ldflags + (pull request #19 from Jeroen Dekkers). + 2015-04-09 Michael Bell * Released 0.11.4 * Get rid of the useless file MANIFEST (cmake don't need it). diff --git a/INSTALL b/INSTALL index 2bdff6d..dc84e60 100644 --- a/INSTALL +++ b/INSTALL @@ -76,3 +76,6 @@ WBXML_SUPPORT_WV : Support of Wireless-Village CSP 1.1 / CSP 1.2 HAVE_EXPAT : Enable XML Parsing feature (needs Expat) + + BUILD_SHARED_LIBS : Build wbxml as shared library + BUILD_STATIC_LIBS : Build wbxml as static library diff --git a/THANKS b/THANKS index 41f2522..91c087a 100644 --- a/THANKS +++ b/THANKS @@ -13,6 +13,7 @@ Pau Aliagas Michael Banck (Debian package maintainer, testing) Michael Bell Gaurav Gupta +Gil Hartmann (Active Sync v16.0) Conrad Irwin (performance fixes) Aymerick Jehanne Ossi Jormakka (Ixonos Plc., ActiveSync) @@ -21,6 +22,7 @@ Benedykt Kroplewski Jeremy Lainé (helped with cmake on Win32) Mark Ostrer (Websense) Petr Písař (RedHat/Fedora package maintainer) +Renu Tyagi (fixed some memory leaks) Boaz Yaniv (MS Visual Studio fixes) If you think your name is missing here diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3a25bb8..33a8d72 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,3 +1,8 @@ + +if(COMMAND cmake_policy AND POLICY CMP0042) + cmake_policy (SET CMP0042 NEW) +endif(COMMAND cmake_policy AND POLICY CMP0042) + LINK_DIRECTORIES( ${EXPAT_LIBRARY_DIRS} ) INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${EXPAT_INCLUDE_DIRS} ) @@ -20,17 +25,35 @@ SET( libwbxml_LIB_SRCS wbxml_tree_clb_xml.c ) -ADD_LIBRARY( wbxml2 SHARED ${libwbxml_LIB_SRCS} ) +IF(BUILD_SHARED_LIBS) + ADD_LIBRARY( wbxml2 SHARED ${libwbxml_LIB_SRCS} ) -SET_TARGET_PROPERTIES( wbxml2 PROPERTIES SOVERSION ${LIBWBXML_LIBVERSION_SOVERSION} ) -SET_TARGET_PROPERTIES( wbxml2 PROPERTIES VERSION ${LIBWBXML_LIBVERSION_VERSION} ) -TARGET_LINK_LIBRARIES( wbxml2 ${EXPAT_LIBRARIES} ) + SET_TARGET_PROPERTIES( wbxml2 PROPERTIES SOVERSION ${LIBWBXML_LIBVERSION_SOVERSION} ) + SET_TARGET_PROPERTIES( wbxml2 PROPERTIES VERSION ${LIBWBXML_LIBVERSION_VERSION} ) + TARGET_LINK_LIBRARIES( wbxml2 ${EXPAT_LIBRARIES} ) + + INSTALL( TARGETS wbxml2 + RUNTIME DESTINATION ${LIBWBXML_BIN_DIR} + LIBRARY DESTINATION ${LIBWBXML_LIBRARIES_DIR} + ARCHIVE DESTINATION ${LIBWBXML_LIBRARIES_DIR} + ) +ENDIF() + +IF(BUILD_STATIC_LIBS) + ADD_LIBRARY( wbxml2_static STATIC ${libwbxml_LIB_SRCS} ) + + SET_TARGET_PROPERTIES( wbxml2_static PROPERTIES SOVERSION ${LIBWBXML_LIBVERSION_SOVERSION} ) + SET_TARGET_PROPERTIES( wbxml2_static PROPERTIES VERSION ${LIBWBXML_LIBVERSION_VERSION} ) + TARGET_LINK_LIBRARIES( wbxml2_static ${EXPAT_LIBRARIES} ) + SET_TARGET_PROPERTIES( wbxml2_static PROPERTIES OUTPUT_NAME wbxml2 ) + + INSTALL( TARGETS wbxml2_static + RUNTIME DESTINATION ${LIBWBXML_BIN_DIR} + LIBRARY DESTINATION ${LIBWBXML_LIBRARIES_DIR} + ARCHIVE DESTINATION ${LIBWBXML_LIBRARIES_DIR} + ) +ENDIF() -INSTALL( TARGETS wbxml2 - RUNTIME DESTINATION ${LIBWBXML_BIN_DIR} - LIBRARY DESTINATION ${LIBWBXML_LIBRARIES_DIR} - ARCHIVE DESTINATION ${LIBWBXML_LIBRARIES_DIR} -) INSTALL( FILES wbxml.h diff --git a/src/wbxml_base64.c b/src/wbxml_base64.c index 45a2188..5c76188 100644 --- a/src/wbxml_base64.c +++ b/src/wbxml_base64.c @@ -79,7 +79,7 @@ WBXML_DECLARE(WB_UTINY *) wbxml_base64_encode(const WB_UTINY *buffer, WB_LONG le return NULL; /* Malloc result buffer */ - if ((result = (WB_UTINY *) wbxml_malloc(((len + 2) / 3 * 4) + 1 + 1)) == NULL) + if ((result = wbxml_malloc(((len + 2) / 3 * 4) + 1 + 1)) == NULL) return NULL; p = result; @@ -134,7 +134,7 @@ WBXML_DECLARE(WB_LONG) wbxml_base64_decode(const WB_UTINY *buffer, WB_LONG len, nbytesdecoded = ((nprbytes + 3) / 4) * 3; /* Malloc result buffer */ - if ((*result = (WB_UTINY*) wbxml_malloc(nbytesdecoded + 1)) == NULL) + if ((*result = wbxml_malloc(nbytesdecoded + 1)) == NULL) return 0; bufout = *result; diff --git a/src/wbxml_buffers.c b/src/wbxml_buffers.c index bc9a19d..a38ae85 100644 --- a/src/wbxml_buffers.c +++ b/src/wbxml_buffers.c @@ -71,7 +71,7 @@ WBXML_DECLARE(WBXMLBuffer *) wbxml_buffer_create_real(const WB_UTINY *data, WB_U { WBXMLBuffer *buffer = NULL; - buffer = (WBXMLBuffer *) wbxml_malloc(sizeof(WBXMLBuffer)); + buffer = wbxml_malloc(sizeof(WBXMLBuffer)); if (buffer == NULL) return NULL; @@ -88,7 +88,7 @@ WBXML_DECLARE(WBXMLBuffer *) wbxml_buffer_create_real(const WB_UTINY *data, WB_U else buffer->malloced = malloc_block + 1; - buffer->data = (WB_UTINY *) wbxml_malloc(buffer->malloced * sizeof(WB_UTINY)); + buffer->data = wbxml_malloc(buffer->malloced * sizeof(WB_UTINY)); if (buffer->data == NULL) { wbxml_free(buffer); return NULL; @@ -107,7 +107,7 @@ WBXML_DECLARE(WBXMLBuffer *) wbxml_buffer_sta_create_real(const WB_UTINY *data, { WBXMLBuffer *buffer = NULL; - buffer = (WBXMLBuffer *) wbxml_malloc(sizeof(WBXMLBuffer)); + buffer = wbxml_malloc(sizeof(WBXMLBuffer)); if (buffer == NULL) { return NULL; } @@ -518,7 +518,7 @@ WBXML_DECLARE(WBXMLList *) wbxml_buffer_split_words_real(WBXMLBuffer *buff) } -WBXML_DECLARE(WB_BOOL) wbxml_buffer_search_char(WBXMLBuffer *to, WB_UTINY ch, WB_ULONG pos, WB_ULONG *result) +WBXML_DECLARE(WB_BOOL) wbxml_buffer_search_char(WBXMLBuffer *to, const WB_UTINY ch, WB_ULONG pos, WB_ULONG *result) { WB_UTINY *p = NULL; @@ -578,7 +578,7 @@ WBXML_DECLARE(WB_BOOL) wbxml_buffer_search(WBXMLBuffer *to, WBXMLBuffer *search, } -WBXML_DECLARE(WB_BOOL) wbxml_buffer_search_cstr(WBXMLBuffer *to, WB_UTINY *search, WB_ULONG pos, WB_ULONG *result) +WBXML_DECLARE(WB_BOOL) wbxml_buffer_search_cstr(WBXMLBuffer *to, const WB_UTINY *search, WB_ULONG pos, WB_ULONG *result) { WB_UTINY first = 0; diff --git a/src/wbxml_buffers.h b/src/wbxml_buffers.h index 3026447..f6c08e5 100644 --- a/src/wbxml_buffers.h +++ b/src/wbxml_buffers.h @@ -269,7 +269,7 @@ WBXML_DECLARE(WBXMLList *) wbxml_buffer_split_words_real(WBXMLBuffer *buff); * @param result The start position of char in 'to' buffer * @return TRUE if char successfully found in 'to' buffer, FALSE otherwise */ -WBXML_DECLARE(WB_BOOL) wbxml_buffer_search_char(WBXMLBuffer *to, WB_UTINY ch, WB_ULONG pos, WB_ULONG *result); +WBXML_DECLARE(WB_BOOL) wbxml_buffer_search_char(WBXMLBuffer *to, const WB_UTINY ch, WB_ULONG pos, WB_ULONG *result); /** * @brief Search a Buffer in another Buffer @@ -289,7 +289,7 @@ WBXML_DECLARE(WB_BOOL) wbxml_buffer_search(WBXMLBuffer *to, WBXMLBuffer *search, * @param result The start position of 'search' buffer in 'to' buffer * @return TRUE if successfully found 'search' in 'to' buffer, FALSE otherwise */ -WBXML_DECLARE(WB_BOOL) wbxml_buffer_search_cstr(WBXMLBuffer *to, WB_UTINY *search, WB_ULONG pos, WB_ULONG *result); +WBXML_DECLARE(WB_BOOL) wbxml_buffer_search_cstr(WBXMLBuffer *to, const WB_UTINY *search, WB_ULONG pos, WB_ULONG *result); /** * @brief Check if a buffer contains only Whitespaces diff --git a/src/wbxml_charset.c b/src/wbxml_charset.c index 8adfde1..66bc784 100644 --- a/src/wbxml_charset.c +++ b/src/wbxml_charset.c @@ -187,7 +187,7 @@ WBXML_DECLARE(WBXMLError) wbxml_charset_conv(const WB_TINY *in_buf, /* Allocate maximum result buffer (4 bytes unicode) */ tmp_len_left = tmp_buf_len = 4 * (sizeof(WB_TINY) * (*io_bytes)); - if ((tmp_buf = (WB_TINY *) wbxml_malloc(tmp_buf_len)) == NULL) { + if ((tmp_buf = wbxml_malloc(tmp_buf_len)) == NULL) { iconv_close(cd); return WBXML_ERROR_NOT_ENOUGH_MEMORY; } diff --git a/src/wbxml_conv.c b/src/wbxml_conv.c index b1a0b4d..e443b37 100644 --- a/src/wbxml_conv.c +++ b/src/wbxml_conv.c @@ -68,7 +68,7 @@ WBXML_DECLARE(WBXMLError) wbxml_conv_wbxml2xml_create(WBXMLConvWBXML2XML **conv) return WBXML_ERROR_BAD_PARAMETER; } - *conv = (WBXMLConvWBXML2XML *) wbxml_malloc(sizeof(WBXMLConvWBXML2XML)); + *conv = wbxml_malloc(sizeof(WBXMLConvWBXML2XML)); if (*conv == NULL) { return WBXML_ERROR_NOT_ENOUGH_MEMORY; } @@ -216,7 +216,7 @@ WBXML_DECLARE(WBXMLError) wbxml_conv_xml2wbxml_create(WBXMLConvXML2WBXML **conv) return WBXML_ERROR_BAD_PARAMETER; } - *conv = (WBXMLConvXML2WBXML *) wbxml_malloc(sizeof(WBXMLConvXML2WBXML)); + *conv = wbxml_malloc(sizeof(WBXMLConvXML2WBXML)); if (*conv == NULL) { return WBXML_ERROR_NOT_ENOUGH_MEMORY; } diff --git a/src/wbxml_elt.c b/src/wbxml_elt.c index 28dafd6..cbe33d1 100644 --- a/src/wbxml_elt.c +++ b/src/wbxml_elt.c @@ -51,7 +51,7 @@ WBXML_DECLARE(WBXMLTag *) wbxml_tag_create(WBXMLValueType type) { WBXMLTag *result = NULL; - if ((result = (WBXMLTag *) wbxml_malloc(sizeof(WBXMLTag))) == NULL) + if ((result = wbxml_malloc(sizeof(WBXMLTag))) == NULL) return NULL; result->type = type; @@ -115,7 +115,7 @@ WBXML_DECLARE(WBXMLTag *) wbxml_tag_duplicate(WBXMLTag *tag) if (tag == NULL) return NULL; - if ((result = (WBXMLTag *) wbxml_malloc(sizeof(WBXMLTag))) == NULL) + if ((result = wbxml_malloc(sizeof(WBXMLTag))) == NULL) return NULL; result->type = tag->type; @@ -160,7 +160,7 @@ WBXML_DECLARE(WBXMLAttributeName *) wbxml_attribute_name_create(WBXMLValueType t { WBXMLAttributeName *result = NULL; - if ((result = (WBXMLAttributeName *) wbxml_malloc(sizeof(WBXMLAttributeName))) == NULL) + if ((result = wbxml_malloc(sizeof(WBXMLAttributeName))) == NULL) return NULL; result->type = type; @@ -224,7 +224,7 @@ WBXML_DECLARE(WBXMLAttributeName *) wbxml_attribute_name_duplicate(WBXMLAttribut if (name == NULL) return NULL; - if ((result = (WBXMLAttributeName *) wbxml_malloc(sizeof(WBXMLAttributeName))) == NULL) + if ((result = wbxml_malloc(sizeof(WBXMLAttributeName))) == NULL) return NULL; result->type = name->type; @@ -269,7 +269,7 @@ WBXML_DECLARE(WBXMLAttribute *) wbxml_attribute_create(void) { WBXMLAttribute *result = NULL; - if ((result = (WBXMLAttribute *) wbxml_malloc(sizeof(WBXMLAttribute))) == NULL) + if ((result = wbxml_malloc(sizeof(WBXMLAttribute))) == NULL) return NULL; result->name = NULL; @@ -304,7 +304,7 @@ WBXML_DECLARE(WBXMLAttribute *) wbxml_attribute_duplicate(WBXMLAttribute *attr) if (attr == NULL) return NULL; - if ((result = (WBXMLAttribute *) wbxml_malloc(sizeof(WBXMLAttribute))) == NULL) + if ((result = wbxml_malloc(sizeof(WBXMLAttribute))) == NULL) return NULL; result->name = wbxml_attribute_name_duplicate(attr->name); diff --git a/src/wbxml_encoder.c b/src/wbxml_encoder.c index a6e442e..cd2d6bc 100644 --- a/src/wbxml_encoder.c +++ b/src/wbxml_encoder.c @@ -378,7 +378,7 @@ WBXML_DECLARE(WBXMLEncoder *) wbxml_encoder_create_real(void) { WBXMLEncoder *encoder = NULL; - encoder = (WBXMLEncoder *) wbxml_malloc(sizeof(WBXMLEncoder)); + encoder = wbxml_malloc(sizeof(WBXMLEncoder)); if (encoder == NULL) { return NULL; } @@ -1472,7 +1472,7 @@ static WBXMLError wbxml_build_result(WBXMLEncoder *encoder, WB_UTINY **wbxml, WB *wbxml_len = wbxml_buffer_len(header) + wbxml_buffer_len(encoder->output); /* Create Result Buffer */ - *wbxml = (WB_UTINY *) wbxml_malloc(*wbxml_len * sizeof(WB_UTINY)); + *wbxml = wbxml_malloc(*wbxml_len * sizeof(WB_UTINY)); if (*wbxml == NULL) { if (encoder->flow_mode == FALSE) wbxml_buffer_destroy(header); @@ -1673,6 +1673,9 @@ static WBXMLError wbxml_encode_tag(WBXMLEncoder *encoder, WBXMLTreeNode *node, W const WBXMLTagEntry *tag = NULL; WB_UTINY token = 0x00, page = 0x00; + if (!node || !node->name) { + return WBXML_ERROR_UNKNOWN_TAG; + } if (node->name->type == WBXML_VALUE_TOKEN) { token = node->name->u.token->wbxmlToken; page = node->name->u.token->wbxmlCodePage; @@ -2617,7 +2620,7 @@ static WBXMLValueElement *wbxml_value_element_create(void) { WBXMLValueElement *elt = NULL; - if ((elt = (WBXMLValueElement*) wbxml_malloc(sizeof(WBXMLValueElement))) == NULL) + if ((elt = wbxml_malloc(sizeof(WBXMLValueElement))) == NULL) return NULL; elt->type = WBXML_VALUE_ELEMENT_STRING; @@ -3568,7 +3571,7 @@ static WBXMLStringTableElement *wbxml_strtbl_element_create(WBXMLBuffer *string, { WBXMLStringTableElement *elt = NULL; - if ((elt = (WBXMLStringTableElement *) wbxml_malloc(sizeof(WBXMLStringTableElement))) == NULL) + if ((elt = wbxml_malloc(sizeof(WBXMLStringTableElement))) == NULL) return NULL; elt->string = string; @@ -3760,6 +3763,7 @@ static WBXMLError wbxml_strtbl_collect_words(WBXMLList *elements, WBXMLList **re /* There is a bug inside the wbxml strtbl implementation. wbxml_list must be used in a wrong way. */ + wbxml_list_destroy(list, wbxml_buffer_destroy_item); return WBXML_ERROR_INTERNAL; } @@ -3870,6 +3874,7 @@ static WBXMLError wbxml_strtbl_check_references(WBXMLEncoder *encoder, WBXMLList if (!stat_buff) wbxml_buffer_destroy(string); string = NULL; + wbxml_list_destroy(referenced, wbxml_strtbl_element_destroy_item); return WBXML_ERROR_INTERNAL; } @@ -4071,7 +4076,7 @@ static WBXMLError xml_build_result(WBXMLEncoder *encoder, WB_UTINY **xml, WB_ULO len = wbxml_buffer_len(header) + wbxml_buffer_len(encoder->output); /* Create Result Buffer */ - *xml = (WB_UTINY *) wbxml_malloc((len + 1) * sizeof(WB_UTINY)); + *xml = wbxml_malloc((len + 1) * sizeof(WB_UTINY)); if (*xml == NULL) { if (encoder->flow_mode == FALSE) wbxml_buffer_destroy(header); diff --git a/src/wbxml_lists.c b/src/wbxml_lists.c index c378e68..d6cb219 100644 --- a/src/wbxml_lists.c +++ b/src/wbxml_lists.c @@ -66,7 +66,7 @@ WBXML_DECLARE(WBXMLList *) wbxml_list_create_real(void) { WBXMLList *list = NULL; - if ((list = (WBXMLList *) wbxml_malloc(sizeof(WBXMLList))) == NULL) + if ((list = wbxml_malloc(sizeof(WBXMLList))) == NULL) return NULL; list->head = NULL; @@ -244,7 +244,7 @@ static WBXMLListElt *wbxml_elt_create_real(void *item) if (item == NULL) return NULL; - if ((elt = (WBXMLListElt *) wbxml_malloc(sizeof(WBXMLListElt))) == NULL) + if ((elt = wbxml_malloc(sizeof(WBXMLListElt))) == NULL) return NULL; elt->item = item; diff --git a/src/wbxml_parser.c b/src/wbxml_parser.c index eeeb82e..c7f8dda 100644 --- a/src/wbxml_parser.c +++ b/src/wbxml_parser.c @@ -182,7 +182,7 @@ WBXML_DECLARE(WBXMLParser *) wbxml_parser_create(void) { WBXMLParser *parser = NULL; - parser = (WBXMLParser *) wbxml_malloc(sizeof(WBXMLParser)); + parser = wbxml_malloc(sizeof(WBXMLParser)); if (parser == NULL) { return NULL; } @@ -1582,7 +1582,7 @@ static WBXMLError parse_extension(WBXMLParser *parser, WBXMLTokenType code_space } /* Build Variable */ - ext = (WB_UTINY*) wbxml_malloc(WBXML_STRLEN(var_begin) + + ext = wbxml_malloc(WBXML_STRLEN(var_begin) + wbxml_buffer_len(var_value) + WBXML_STRLEN(escape) + WBXML_STRLEN(var_end) + 1); @@ -1625,6 +1625,7 @@ static WBXMLError parse_extension(WBXMLParser *parser, WBXMLTokenType code_space break; default: + wbxml_free(ext); return WBXML_ERROR_UNKNOWN_EXTENSION_TOKEN; } @@ -1672,6 +1673,7 @@ static WBXMLError parse_extension(WBXMLParser *parser, WBXMLTokenType code_space #if WBXML_PARSER_BEST_EFFORT ext = (WB_UTINY *) wbxml_strdup((const WB_TINY*) WBXML_PARSER_UNKNOWN_STRING); len = WBXML_STRLEN(WBXML_PARSER_UNKNOWN_STRING); + wbxml_free(ext); return WBXML_OK; #else return WBXML_ERROR_UNKNOWN_EXTENSION_VALUE; diff --git a/src/wbxml_tables.c b/src/wbxml_tables.c index 64082111..fc678f8 100644 --- a/src/wbxml_tables.c +++ b/src/wbxml_tables.c @@ -2803,6 +2803,7 @@ const WBXMLTagEntry sv_airsync_tag_table[] = { { "FirstDayOfWeek", 0x04, 0x39 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ { "OnlineMeetingConfLink", 0x04, 0x3a }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ { "OnlineMeetingExternalLink",0x04, 0x3b }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ + { "ClientUid", 0x04, 0x3c }, /* since 16.0 */ /* Code Page: Move (since v2.5 and r1.0) */ { "MoveItems", 0x05, 0x05 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */ @@ -2859,6 +2860,7 @@ const WBXMLTagEntry sv_airsync_tag_table[] = { { "UserResponse", 0x08, 0x0c }, /* since r1.0 */ { "Version", 0x08, 0x0d }, /* not defined in r8.0 but in r1.0 */ { "InstanceId", 0x08, 0x0e }, /* since r8.0? */ + { "SendResponse", 0x08, 0x12 }, /* since 16.0 */ /* Code Page: Tasks (since v2.5 and r1.0) */ { "Body", 0x09, 0x05 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */ @@ -2921,7 +2923,7 @@ const WBXMLTagEntry sv_airsync_tag_table[] = { { "MergedFreeBusy", 0x0a, 0x19 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */ { "Picture", 0x0a, 0x1a }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ { "MaxSize", 0x0a, 0x1b }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ - { "Data", 0x0a, 0x1c }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ + { "Data", 0x0a, 0x1c, WBXML_TAG_OPTION_BINARY }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ { "MaxPictures", 0x0a, 0x1d }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ /* Code Page: ValidateCert (since v2.5 and r1.0) */ @@ -3058,7 +3060,7 @@ const WBXMLTagEntry sv_airsync_tag_table[] = { { "EmailAddress", 0x10, 0x0f }, /* since r1.0 */ { "Picture", 0x10, 0x10 }, /* not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ { "Status", 0x10, 0x11 }, /* not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ - { "Data", 0x10, 0x12 }, /* not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ + { "Data", 0x10, 0x12, WBXML_TAG_OPTION_BINARY }, /* not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ /* Code Page: AirSyncBase (since v12.0 and r1.0) */ { "BodyPreference", 0x11, 0x05 }, /* since r1.0 */ @@ -3083,6 +3085,24 @@ const WBXMLTagEntry sv_airsync_tag_table[] = { { "BodyPartPreference", 0x11, 0x19 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 or 14 */ { "BodyPart", 0x11, 0x1a }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 or 14 */ { "Status", 0x11, 0x1b }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 or 14 */ + { "Add", 0x11, 0x1c }, /* since 16.0 */ + { "Delete", 0x11, 0x1d }, /* since 16.0 */ + { "ClientId", 0x11, 0x1e }, /* since 16.0 */ + { "Content", 0x11, 0x1f }, /* since 16.0 */ + { "Location", 0x11, 0x20 }, /* since 16.0 */ + { "Annotation", 0x11, 0x21 }, /* since 16.0 */ + { "Street", 0x11, 0x22 }, /* since 16.0 */ + { "City", 0x11, 0x23 }, /* since 16.0 */ + { "State", 0x11, 0x24 }, /* since 16.0 */ + { "Country", 0x11, 0x25 }, /* since 16.0 */ + { "PostalCode", 0x11, 0x26 }, /* since 16.0 */ + { "Latitude", 0x11, 0x27 }, /* since 16.0 */ + { "Longitude", 0x11, 0x28 }, /* since 16.0 */ + { "Accuracy", 0x11, 0x29 }, /* since 16.0 */ + { "Altitude", 0x11, 0x2a }, /* since 16.0 */ + { "AltitudeAccuracy", 0x11, 0x2b }, /* since 16.0 */ + { "LocationUri", 0x11, 0x2c }, /* since 16.0 */ + { "InstanceId", 0x11, 0x2d }, /* since 16.0 */ /* Code Page: Settings (since v12.1 and r1.0) */ { "Settings", 0x12, 0x05 }, /* since r1.0 */ @@ -3173,6 +3193,10 @@ const WBXMLTagEntry sv_airsync_tag_table[] = { { "ClientId", 0x15, 0x11 }, /* since r8.0? */ { "Status", 0x15, 0x12 }, /* since r8.0? */ { "AccountId", 0x15, 0x13 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ + { "Forwardees", 0x15, 0x15 }, /* since 16.0 */ + { "Forwardee", 0x15, 0x16 }, /* since 16.0 */ + { "ForwardeeName", 0x15, 0x17 }, /* since 16.0 */ + { "ForwardeeEmail", 0x15, 0x18 }, /* since 16.0 */ /* Code Page: Email2 (since v14.0 and r8.0?) */ /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */ @@ -3191,6 +3215,9 @@ const WBXMLTagEntry sv_airsync_tag_table[] = { { "AccountId", 0x16, 0x11 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ { "FirstDayOfWeek", 0x16, 0x12 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ { "MeetingMessageType", 0x16, 0x13 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */ + { "IsDraft", 0x16, 0x15 }, /* since 16.0 */ + { "Bcc", 0x16, 0x16 }, /* since 16.0 */ + { "Send", 0x16, 0x17 }, /* since 16.0 */ /* Code Page: Notes (since v14.0 and r8.0?) */ /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */ diff --git a/src/wbxml_tree.c b/src/wbxml_tree.c index 963c7ee..f1d9de8 100644 --- a/src/wbxml_tree.c +++ b/src/wbxml_tree.c @@ -383,7 +383,7 @@ WBXML_DECLARE(WBXMLTreeNode *) wbxml_tree_node_create(WBXMLTreeNodeType type) { WBXMLTreeNode *result = NULL; - if ((result = (WBXMLTreeNode *) wbxml_malloc(sizeof(WBXMLTreeNode))) == NULL) + if ((result = wbxml_malloc(sizeof(WBXMLTreeNode))) == NULL) return NULL; result->type = type; @@ -972,7 +972,7 @@ WBXML_DECLARE(WBXMLTree *) wbxml_tree_create(WBXMLLanguage lang, { WBXMLTree *result = NULL; - if ((result = (WBXMLTree *) wbxml_malloc(sizeof(WBXMLTree))) == NULL) + if ((result = wbxml_malloc(sizeof(WBXMLTree))) == NULL) return NULL; result->lang = wbxml_tables_get_table(lang); diff --git a/test/api/CMakeLists.txt b/test/api/CMakeLists.txt index 2bd9d11..d3451d7 100644 --- a/test/api/CMakeLists.txt +++ b/test/api/CMakeLists.txt @@ -14,8 +14,17 @@ FOREACH( SRC_FILE lists buffers base64 charset conv encoder_internals errors par ADD_EXECUTABLE(test_wbxml_${SRC_FILE} test_wbxml_${SRC_FILE}.c api_test.c) +IF(BUILD_SHARED_LIBS) TARGET_LINK_LIBRARIES(test_wbxml_${SRC_FILE} wbxml2) +ELSE(BUILD_SHARED_LIBS) + TARGET_LINK_LIBRARIES(test_wbxml_${SRC_FILE} wbxml2_static) +ENDIF() + + IF( PKG_CONFIG_FOUND ) + TARGET_LINK_LIBRARIES(test_wbxml_${SRC_FILE} ${CHECK_LDFLAGS}) + ELSE ( PKG_CONFIG_FOUND ) TARGET_LINK_LIBRARIES(test_wbxml_${SRC_FILE} ${CHECK_LIBRARIES}) + ENDIF ( PKG_CONFIG_FOUND ) ADD_TEST(api_private_wbxml_${SRC_FILE} ${CMAKE_CURRENT_BINARY_DIR}/test_wbxml_${SRC_FILE}) diff --git a/test/api/test_wbxml_base64.c b/test/api/test_wbxml_base64.c index 64082116..c22b59c 100644 --- a/test/api/test_wbxml_base64.c +++ b/test/api/test_wbxml_base64.c @@ -1,6 +1,7 @@ #include "api_test.h" #include "../../src/wbxml_base64.h" +#include "../../src/wbxml_mem.h" START_TEST (test_encode) { @@ -11,15 +12,15 @@ START_TEST (test_encode) ck_assert(wbxml_base64_encode(NULL, 0) == NULL); ck_assert(wbxml_base64_encode(NULL, 1) == NULL); - ck_assert(wbxml_base64_encode("", 0) == NULL); - ck_assert(wbxml_base64_encode("test", 0) == NULL); + ck_assert(wbxml_base64_encode((const WB_UTINY*) "", 0) == NULL); + ck_assert(wbxml_base64_encode((const WB_UTINY*) "test", 0) == NULL); /* encode a string */ - result = wbxml_base64_encode("test", 4); + result = wbxml_base64_encode((const WB_UTINY*) "test", 4); ck_assert(result != NULL); - ck_assert(strlen(result) == 8); - ck_assert(strncmp(result, "dGVzdA==", 8) == 0); + ck_assert(WBXML_STRLEN(result) == 8); + ck_assert(WBXML_STRNCMP(result, "dGVzdA==", 8) == 0); wbxml_free(result); } END_TEST @@ -32,13 +33,13 @@ START_TEST (test_decode) ck_assert(wbxml_base64_decode(NULL, 0, &result) <= 0); ck_assert(wbxml_base64_decode(NULL, 1, &result) <= 0); - ck_assert(wbxml_base64_decode("", 0, &result) <= 0); - ck_assert(wbxml_base64_decode("test", 0, &result) <= 0); + ck_assert(wbxml_base64_decode((const WB_UTINY*) "", 0, &result) <= 0); + ck_assert(wbxml_base64_decode((const WB_UTINY*) "test", 0, &result) <= 0); /* decode a string */ - ck_assert(wbxml_base64_decode("dGVzdA==", 8, &result) == 4); - ck_assert(strncmp(result, "test", 4) == 0); + ck_assert(wbxml_base64_decode((const WB_UTINY*) "dGVzdA==", 8, &result) == 4); + ck_assert(WBXML_STRNCMP(result, "test", 4) == 0); wbxml_free(result); } END_TEST @@ -50,9 +51,9 @@ START_TEST (test_encode_and_decode) /* encode */ - enc = wbxml_base64_encode("test", 4); - ck_assert(wbxml_base64_decode(enc, strlen(enc), &dec) == 4); - ck_assert(strncmp(dec, "test", 4) == 0); + enc = wbxml_base64_encode((const WB_UTINY*) "test", 4); + ck_assert(wbxml_base64_decode(enc, WBXML_STRLEN(enc), &dec) == 4); + ck_assert(WBXML_STRNCMP(dec, "test", 4) == 0); wbxml_free(enc); wbxml_free(dec); } diff --git a/test/api/test_wbxml_buffers.c b/test/api/test_wbxml_buffers.c index 17ee6c3..01ce636 100644 --- a/test/api/test_wbxml_buffers.c +++ b/test/api/test_wbxml_buffers.c @@ -58,7 +58,7 @@ START_TEST (test_init_and_destroy_static) ck_assert( ! wbxml_buffer_set_char(buf, 3, 'c')); ck_assert( ! wbxml_buffer_insert(buf, buf2, 2)); - ck_assert( ! wbxml_buffer_insert_cstr(buf, t2, 2)); + ck_assert( ! wbxml_buffer_insert_cstr(buf, (const WB_UTINY*) t2, 2)); ck_assert( ! wbxml_buffer_append(buf, buf2)); ck_assert( ! wbxml_buffer_append_data(buf, t2, 2)); @@ -95,19 +95,19 @@ START_TEST (test_set_char) /* set first char */ ck_assert(wbxml_buffer_set_char(buf, 0, 'T')); - ck_assert(wbxml_buffer_get_char(buf, 0, &c)); + ck_assert(wbxml_buffer_get_char(buf, 0, (WB_UTINY *) &c)); ck_assert(c == 'T'); /* set middle char */ ck_assert(wbxml_buffer_set_char(buf, 2, 'S')); - ck_assert(wbxml_buffer_get_char(buf, 2, &c)); + ck_assert(wbxml_buffer_get_char(buf, 2, (WB_UTINY *) &c)); ck_assert(c == 'S'); /* set last char */ ck_assert(wbxml_buffer_set_char(buf, 5, '2')); - ck_assert(wbxml_buffer_get_char(buf, 5, &c)); + ck_assert(wbxml_buffer_get_char(buf, 5, (WB_UTINY *) &c)); ck_assert(c == '2'); /* set last+1 char */ @@ -198,36 +198,36 @@ START_TEST (test_insert) /* insert to an empty buffer */ - ck_assert(wbxml_buffer_insert_cstr(buf, "test", 0)); + ck_assert(wbxml_buffer_insert_cstr(buf, (const WB_UTINY *) "test", 0)); ck_assert(wbxml_buffer_len(buf) == 4); /* insert to head */ - ck_assert(wbxml_buffer_insert_cstr(buf, "1", 0)); + ck_assert(wbxml_buffer_insert_cstr(buf, (const WB_UTINY *) "1", 0)); ck_assert(wbxml_buffer_len(buf) == 5); ck_assert(wbxml_buffer_compare_cstr(buf, "1test") == 0); /* insert into middle */ - ck_assert(wbxml_buffer_insert_cstr(buf, "23", 1)); + ck_assert(wbxml_buffer_insert_cstr(buf, (const WB_UTINY *) "23", 1)); ck_assert(wbxml_buffer_len(buf) == 7); ck_assert(wbxml_buffer_compare_cstr(buf, "123test") == 0); /* insert at end */ - ck_assert(wbxml_buffer_insert_cstr(buf, "7", 6)); + ck_assert(wbxml_buffer_insert_cstr(buf, (const WB_UTINY *) "7", 6)); ck_assert(wbxml_buffer_len(buf) == 8); ck_assert(wbxml_buffer_compare_cstr(buf, "123tes7t") == 0); /* insert after end */ - ck_assert(wbxml_buffer_insert_cstr(buf, "9", 8)); + ck_assert(wbxml_buffer_insert_cstr(buf, (const WB_UTINY *) "9", 8)); ck_assert(wbxml_buffer_len(buf) == 9); ck_assert(wbxml_buffer_compare_cstr(buf, "123tes7t9") == 0); /* insert far after end */ - ck_assert( ! wbxml_buffer_insert_cstr(buf, "10", 10)); + ck_assert( ! wbxml_buffer_insert_cstr(buf, (const WB_UTINY *) "10", 10)); ck_assert(wbxml_buffer_len(buf) == 9); ck_assert(wbxml_buffer_compare_cstr(buf, "123tes7t9") == 0); @@ -261,7 +261,7 @@ START_TEST (test_delete) /* insert */ - ck_assert(wbxml_buffer_insert_cstr(buf, "test", 0)); + ck_assert(wbxml_buffer_insert_cstr(buf, (const WB_UTINY *) "test", 0)); ck_assert(wbxml_buffer_len(buf) == 4); /* delete head */ @@ -354,12 +354,12 @@ START_TEST (test_search) ck_assert(! wbxml_buffer_search(buf, buf2, 0, &l)); ck_assert(! wbxml_buffer_search(buf, NULL, 0, &l)); - ck_assert(! wbxml_buffer_search_cstr(NULL, "123", 0, &l)); - ck_assert(! wbxml_buffer_search_cstr(NULL, "", 0, &l)); + ck_assert(! wbxml_buffer_search_cstr(NULL, (const WB_UTINY *) "123", 0, &l)); + ck_assert(! wbxml_buffer_search_cstr(NULL, (const WB_UTINY *) "", 0, &l)); ck_assert(! wbxml_buffer_search_cstr(NULL, NULL, 0, &l)); - ck_assert(! wbxml_buffer_search_cstr(buf, "123", 0, &l)); + ck_assert(! wbxml_buffer_search_cstr(buf, (const WB_UTINY *) "123", 0, &l)); l = 1; - ck_assert(wbxml_buffer_search_cstr(buf, "", 0, &l)); + ck_assert(wbxml_buffer_search_cstr(buf, (const WB_UTINY *) "", 0, &l)); ck_assert(l == 0); ck_assert(! wbxml_buffer_search_cstr(buf, NULL, 0, &l)); @@ -382,10 +382,10 @@ START_TEST (test_search) ck_assert(! wbxml_buffer_search(buf, buf2, 5, NULL)); l = 1; - ck_assert(wbxml_buffer_search_cstr(buf, "123", 0, &l)); + ck_assert(wbxml_buffer_search_cstr(buf, (const WB_UTINY *) "123", 0, &l)); ck_assert(l == 4); - ck_assert(wbxml_buffer_search_cstr(buf, "123", 0, NULL)); - ck_assert(wbxml_buffer_search_cstr(buf, "", 0, &l)); + ck_assert(wbxml_buffer_search_cstr(buf, (const WB_UTINY *) "123", 0, NULL)); + ck_assert(wbxml_buffer_search_cstr(buf, (const WB_UTINY *) "", 0, &l)); ck_assert(l == 0); ck_assert(! wbxml_buffer_search_cstr(buf, NULL, 0, &l)); @@ -393,7 +393,7 @@ START_TEST (test_search) ck_assert(! wbxml_buffer_search_char(buf, '3', wbxml_buffer_len(buf), &l)); ck_assert(! wbxml_buffer_search(buf, buf2, wbxml_buffer_len(buf), &l)); - ck_assert(! wbxml_buffer_search_cstr(buf, "3", wbxml_buffer_len(buf), &l)); + ck_assert(! wbxml_buffer_search_cstr(buf, (const WB_UTINY *) "3", wbxml_buffer_len(buf), &l)); wbxml_buffer_destroy(buf); wbxml_buffer_destroy(buf2); diff --git a/test/api/test_wbxml_errors.c b/test/api/test_wbxml_errors.c index be8159e..fe75ba2 100644 --- a/test/api/test_wbxml_errors.c +++ b/test/api/test_wbxml_errors.c @@ -4,31 +4,31 @@ START_TEST (security_test_errors_datetime_without_percent) { - ck_assert(strchr(wbxml_errors_string(WBXML_ERROR_BAD_DATETIME), '%') == NULL); + ck_assert(WBXML_STRSTR(wbxml_errors_string(WBXML_ERROR_BAD_DATETIME), "%") == NULL); } END_TEST START_TEST (test_errors_ok) { ck_assert(wbxml_errors_string(WBXML_OK) != NULL); - ck_assert(strcmp(wbxml_errors_string(WBXML_OK), "Unknown Error Code") != 0); + ck_assert(WBXML_STRCMP(wbxml_errors_string(WBXML_OK), "Unknown Error Code") != 0); } END_TEST START_TEST (test_errors_last_item) { ck_assert(wbxml_errors_string(WBXML_ERROR_XMLPARSER_OUTPUT_UTF16) != NULL); - ck_assert(strcmp(wbxml_errors_string(WBXML_ERROR_XMLPARSER_OUTPUT_UTF16), "Unknown Error Code") != 0); + ck_assert(WBXML_STRCMP(wbxml_errors_string(WBXML_ERROR_XMLPARSER_OUTPUT_UTF16), "Unknown Error Code") != 0); ck_assert(wbxml_errors_string(WBXML_ERROR_CHARSET_NOT_FOUND) != NULL); - ck_assert(strcmp(wbxml_errors_string(WBXML_ERROR_CHARSET_NOT_FOUND), "Unknown Error Code") != 0); + ck_assert(WBXML_STRCMP(wbxml_errors_string(WBXML_ERROR_CHARSET_NOT_FOUND), "Unknown Error Code") != 0); } END_TEST START_TEST (test_errors_unknown_error_code) { ck_assert(wbxml_errors_string(127) != NULL); - ck_assert(strcmp(wbxml_errors_string(127), "Unknown Error Code") == 0); + ck_assert(WBXML_STRCMP(wbxml_errors_string(127), "Unknown Error Code") == 0); } END_TEST diff --git a/test/tools/CMakeLists.txt b/test/tools/CMakeLists.txt index 2dd492d..3ee8044 100644 --- a/test/tools/CMakeLists.txt +++ b/test/tools/CMakeLists.txt @@ -2,7 +2,7 @@ ENABLE_TESTING() CONFIGURE_FILE( "launchTests.sh" "${CMAKE_CURRENT_BINARY_DIR}/launchTests.sh") CONFIGURE_FILE( "normalize_xml.pl" "${CMAKE_CURRENT_BINARY_DIR}/normalize_xml.pl" @ONLY) -SET( activesync_tests 12 ) +SET( activesync_tests 13 ) SET( airsync_tests 4 ) SET( ddf_tests 2 ) # 2009-Jan-19 bellmich diff --git a/test/tools/activesync/activesync-040-search-response.xml b/test/tools/activesync/activesync-040-search-response.xml new file mode 100644 index 0000000..d68123b --- /dev/null +++ b/test/tools/activesync/activesync-040-search-response.xml @@ -0,0 +1,26 @@ + + + + 1 + + + 1 + + + xxx yyy + xxx + yyy + tfu@aon.at + +0 (999) 99999 + ++0 (999) 99999 + + 1 + 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 + + + + 0-0 + 1 + + + diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index b2c4315..605e178 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -15,10 +15,18 @@ ELSE( LIBWBXML_POSIX_GETOPT ) ENDIF( LIBWBXML_POSIX_GETOPT ) ADD_EXECUTABLE( wbxml2xml wbxml2xml_tool.c ${ATTGETOPT} ) +IF(BUILD_SHARED_LIBS) TARGET_LINK_LIBRARIES( wbxml2xml wbxml2 ) +ELSE(BUILD_SHARED_LIBS) + TARGET_LINK_LIBRARIES( wbxml2xml wbxml2_static ) +ENDIF() INSTALL( TARGETS wbxml2xml DESTINATION ${LIBWBXML_BIN_DIR} ) ADD_EXECUTABLE( xml2wbxml xml2wbxml_tool.c ${ATTGETOPT} ) +IF(BUILD_SHARED_LIBS) TARGET_LINK_LIBRARIES( xml2wbxml wbxml2 ) +ELSE(BUILD_SHARED_LIBS) + TARGET_LINK_LIBRARIES( xml2wbxml wbxml2_static ) +ENDIF() INSTALL( TARGETS xml2wbxml DESTINATION ${LIBWBXML_BIN_DIR} ) -- 2.34.1