From d191fe71a5af8293e53ef4c314e30c197a9dbe64 Mon Sep 17 00:00:00 2001 From: "friedrich.beckmann" Date: Thu, 15 Jan 2009 13:09:06 +0000 Subject: [PATCH] windows port - regular expressions are not supported by mingw - replaced with glib version git-svn-id: https://svn.opensync.org/trunk/trunk@5153 53f5c7ee-bee3-0310-bbc5-ea0e15fffd5e --- CMakeLists.txt | 6 ++++++ config.h.cmake | 1 + opensync/version/opensync_version.c | 8 +++++--- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 62a11471..16330ea1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,6 +125,12 @@ SET( CMAKE_REQUIRED_FLAGS "" ) 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) diff --git a/config.h.cmake b/config.h.cmake index ad56610e..ba28016b 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -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" diff --git a/opensync/version/opensync_version.c b/opensync/version/opensync_version.c index ba6b5413..d3a2572f 100644 --- a/opensync/version/opensync_version.c +++ b/opensync/version/opensync_version.c @@ -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 @@ static int _osync_version_match(char *pattern, char* string, OSyncError **error) error: return -1; -#else //_WIN32 - return 1; +#else /* HAVE_GLIB_GREGEX_H */ + return g_regex_match_simple(pattern, string, 0, 0); #endif } -- 2.11.4.GIT