From: <dg...@su...> - 2009-01-15 13:09:56
|
Author: friedrich.beckmann Date: Thu Jan 15 14:09:06 2009 New Revision: 5153 URL: http://www.opensync.org/changeset/5153 Log: windows port - regular expressions are not supported by mingw - replaced with glib version Modified: trunk/CMakeLists.txt trunk/config.h.cmake trunk/opensync/version/opensync_version.c Modified: trunk/CMakeLists.txt ============================================================================== --- trunk/CMakeLists.txt Thu Jan 15 10:53:52 2009 (r5152) +++ trunk/CMakeLists.txt Thu Jan 15 14:09:06 2009 (r5153) @@ -125,6 +125,12 @@ SET( CMAKE_REQUIRED_DEFINITIONS "" ) CHECK_FUNCTION_EXISTS( flock HAVE_FLOCK ) +# Check if system has a newer version of glib +# which supports g_regex_match_simple +INCLUDE( CheckIncludeFiles ) +SET( CMAKE_REQUIRED_INCLUDES ${GLIB2_INCLUDE_DIRS} ) +CHECK_INCLUDE_FILES ( glib/gregex.h HAVE_GLIB_GREGEX_H ) + # add uninstall target CONFIGURE_FILE( "${CMAKE_SOURCE_DIR}/cmake/modules/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) Modified: trunk/config.h.cmake ============================================================================== --- trunk/config.h.cmake Thu Jan 15 10:53:52 2009 (r5152) +++ trunk/config.h.cmake Thu Jan 15 14:09:06 2009 (r5153) @@ -19,6 +19,7 @@ #cmakedefine OPENSYNC_TRACE #cmakedefine HAVE_FLOCK +#cmakedefine HAVE_GLIB_GREGEX_H #cmakedefine HAVE_SOLARIS #define OPENSYNC_TESTDATA "${CMAKE_CURRENT_SOURCE_DIR}/tests/data" Modified: trunk/opensync/version/opensync_version.c ============================================================================== --- trunk/opensync/version/opensync_version.c Thu Jan 15 10:53:52 2009 (r5152) +++ trunk/opensync/version/opensync_version.c Thu Jan 15 14:09:06 2009 (r5153) @@ -32,11 +32,13 @@ static int _osync_version_match(char *pattern, char* string, OSyncError **error) { -#ifndef _WIN32 osync_assert(pattern); osync_assert(string); if(!strlen(pattern)) return 1; + /* Only newer versions of glib support regular expressions */ + /* On Windows the glib regular expressions are required */ +#ifndef HAVE_GLIB_GREGEX_H regex_t *preg = osync_try_malloc0(sizeof(regex_t), error); if(!preg) goto error; @@ -80,8 +82,8 @@ error: return -1; -#else //_WIN32 - return 1; +#else /* HAVE_GLIB_GREGEX_H */ + return g_regex_match_simple(pattern, string, 0, 0); #endif } |