--- /dev/null
+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
+
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" )
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 )
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
+2017-02-12 Michael Bell <michael.bell@web.de>
+ * 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 <michael.bell@web.de>
* Released 0.11.4
* Get rid of the useless file MANIFEST (cmake don't need it).
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
Michael Banck (Debian package maintainer, testing)
Michael Bell <michael.bell@web.de>
Gaurav Gupta <g.gupta@samsung.com>
+Gil Hartmann (Active Sync v16.0)
Conrad Irwin (performance fixes)
Aymerick Jehanne <aymerick@jehanne.org>
Ossi Jormakka (Ixonos Plc., ActiveSync)
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
+
+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} )
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
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;
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;
{
WBXMLBuffer *buffer = NULL;
- buffer = (WBXMLBuffer *) wbxml_malloc(sizeof(WBXMLBuffer));
+ buffer = wbxml_malloc(sizeof(WBXMLBuffer));
if (buffer == NULL)
return NULL;
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;
{
WBXMLBuffer *buffer = NULL;
- buffer = (WBXMLBuffer *) wbxml_malloc(sizeof(WBXMLBuffer));
+ buffer = wbxml_malloc(sizeof(WBXMLBuffer));
if (buffer == NULL) {
return NULL;
}
}
-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;
}
-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;
* @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
* @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
/* 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;
}
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;
}
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;
}
{
WBXMLTag *result = NULL;
- if ((result = (WBXMLTag *) wbxml_malloc(sizeof(WBXMLTag))) == NULL)
+ if ((result = wbxml_malloc(sizeof(WBXMLTag))) == NULL)
return NULL;
result->type = type;
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;
{
WBXMLAttributeName *result = NULL;
- if ((result = (WBXMLAttributeName *) wbxml_malloc(sizeof(WBXMLAttributeName))) == NULL)
+ if ((result = wbxml_malloc(sizeof(WBXMLAttributeName))) == NULL)
return NULL;
result->type = type;
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;
{
WBXMLAttribute *result = NULL;
- if ((result = (WBXMLAttribute *) wbxml_malloc(sizeof(WBXMLAttribute))) == NULL)
+ if ((result = wbxml_malloc(sizeof(WBXMLAttribute))) == NULL)
return NULL;
result->name = NULL;
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);
{
WBXMLEncoder *encoder = NULL;
- encoder = (WBXMLEncoder *) wbxml_malloc(sizeof(WBXMLEncoder));
+ encoder = wbxml_malloc(sizeof(WBXMLEncoder));
if (encoder == NULL) {
return NULL;
}
*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);
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;
{
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;
{
WBXMLStringTableElement *elt = NULL;
- if ((elt = (WBXMLStringTableElement *) wbxml_malloc(sizeof(WBXMLStringTableElement))) == NULL)
+ if ((elt = wbxml_malloc(sizeof(WBXMLStringTableElement))) == NULL)
return NULL;
elt->string = string;
/* 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;
}
if (!stat_buff)
wbxml_buffer_destroy(string);
string = NULL;
+ wbxml_list_destroy(referenced, wbxml_strtbl_element_destroy_item);
return WBXML_ERROR_INTERNAL;
}
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);
{
WBXMLList *list = NULL;
- if ((list = (WBXMLList *) wbxml_malloc(sizeof(WBXMLList))) == NULL)
+ if ((list = wbxml_malloc(sizeof(WBXMLList))) == NULL)
return NULL;
list->head = NULL;
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;
{
WBXMLParser *parser = NULL;
- parser = (WBXMLParser *) wbxml_malloc(sizeof(WBXMLParser));
+ parser = wbxml_malloc(sizeof(WBXMLParser));
if (parser == NULL) {
return NULL;
}
}
/* 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);
break;
default:
+ wbxml_free(ext);
return WBXML_ERROR_UNKNOWN_EXTENSION_TOKEN;
}
#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;
{ "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 */
{ "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 */
{ "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) */
{ "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 */
{ "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 */
{ "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 */
{ "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 */
{
WBXMLTreeNode *result = NULL;
- if ((result = (WBXMLTreeNode *) wbxml_malloc(sizeof(WBXMLTreeNode))) == NULL)
+ if ((result = wbxml_malloc(sizeof(WBXMLTreeNode))) == NULL)
return NULL;
result->type = type;
{
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);
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})
#include "api_test.h"
#include "../../src/wbxml_base64.h"
+#include "../../src/wbxml_mem.h"
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
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
/* 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);
}
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));
/* 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 */
/* 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);
/* 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 */
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));
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));
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);
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
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
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE ActiveSync PUBLIC "-//MICROSOFT//DTD ActiveSync//EN" "http://www.microsoft.com/">\r
+<Search xmlns="Search:">\r
+ <Status>1</Status>\r
+ <Response>\r
+ <Store>\r
+ <Status>1</Status>\r
+ <Result>\r
+ <Properties>\r
+ <DisplayName xmlns="Gal:">xxx yyy</DisplayName>\r
+ <FirstName xmlns="Gal:">xxx</FirstName>\r
+ <LastName xmlns="Gal:">yyy</LastName>\r
+ <EmailAddress xmlns="Gal:">tfu@aon.at</EmailAddress>\r
+ <Phone xmlns="Gal:">+0 (999) 99999</Phone>\r
+ <HomePhone xmlns="Gal:">++0 (999) 99999</HomePhone>\r
+ <Picture xmlns="Gal:">\r
+ <Status>1</Status>\r
+ <Data>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</Data>\r
+ </Picture>\r
+ </Properties>\r
+ </Result>\r
+ <Range>0-0</Range>\r
+ <Total>1</Total>\r
+ </Store>\r
+ </Response>\r
+</Search>\r
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} )