File rasqal-0.9.30-mingw.patch of Package mingw64-rasqal

--- rasqal-0.9.30/src/Makefile.am	2012-06-26 02:54:53.000000000 +0200
+++ rasqal-0.9.30/src/Makefile.am	2014-06-04 11:35:21.422061533 +0200
@@ -159,7 +159,7 @@
 endif
 
 
-librasqal_la_LDFLAGS = -version-info @RASQAL_LIBTOOL_VERSION@
+librasqal_la_LDFLAGS = -no-undefined -version-info @RASQAL_LIBTOOL_VERSION@
 librasqal_la_LIBADD = @LTLIBOBJS@ @RASQAL_INTERNAL_LIBS@ @RASQAL_EXTERNAL_LIBS@ $(MEM_LIBS)
 librasqal_la_DEPENDENCIES = @LTLIBOBJS@ @RASQAL_INTERNAL_LIBS@
 
--- rasqal-0.9.30/src/rasqal_expr_numerics.c	2013-01-22 20:26:51.000000000 +0100
+++ rasqal-0.9.30/src/rasqal_expr_numerics.c	2014-06-04 11:35:21.422061533 +0200
@@ -36,6 +36,7 @@
 #include <stdlib.h>
 #endif
 #include <stdarg.h>
+#include <stdint.h>
 
 #include "rasqal.h"
 #include "rasqal_internal.h"
--- rasqal-0.9.30/src/rasqal.h.in	2012-06-26 02:54:53.000000000 +0200
+++ rasqal-0.9.30/src/rasqal.h.in	2014-06-04 11:35:21.423061510 +0200
@@ -1311,6 +1311,7 @@
 rasqal_update_operation* rasqal_query_get_update_operation(rasqal_query* query, int idx);
 
 /* results */
+RASQAL_API
 int rasqal_query_set_store_results(rasqal_query* query, int store_results);
 
 /* graph patterns */
@@ -1693,6 +1694,8 @@
 void rasqal_free_row(rasqal_row* row);
 RASQAL_API
 int rasqal_row_set_value_at(rasqal_row* row, int offset, rasqal_literal* value);
+RASQAL_API
+int rasqal_row_print(rasqal_row* row, FILE* fh);
 
 
 /* Triple class */
--- rasqal-0.9.30/src/rasqal_internal.h	2012-07-30 00:21:11.000000000 +0200
+++ rasqal-0.9.30/src/rasqal_internal.h	2014-06-04 11:35:21.424061486 +0200
@@ -1334,7 +1334,6 @@
 /* rasqal_row.c */
 rasqal_row* rasqal_new_row(rasqal_rowsource* rowsource);
 rasqal_row* rasqal_new_row_from_row(rasqal_row* row);
-int rasqal_row_print(rasqal_row* row, FILE* fh);
 raptor_sequence* rasqal_new_row_sequence(rasqal_world* world, rasqal_variables_table* vt, const char* const row_data[], int vars_count, raptor_sequence** vars_seq_p);
 int rasqal_row_to_nodes(rasqal_row* row);
 void rasqal_row_set_values_from_variables_table(rasqal_row* row, rasqal_variables_table* vars_table);
--- rasqal-0.9.30/src/sparql_parser.h	2012-12-17 00:17:29.000000000 +0100
+++ rasqal-0.9.30/src/sparql_parser.h	2014-06-04 11:35:21.424061486 +0200
@@ -34,6 +34,14 @@
 /* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
+
+#ifdef IN
+# undef IN
+#endif
+
+#ifdef DELETE
+# undef DELETE
+#endif
    /* Put the tokens into the symbol table, so that GDB and other debuggers
       know about them.  */
    enum yytokentype {
--- rasqal-0.9.30/src/timegm.c	2011-08-22 08:06:00.000000000 +0200
+++ rasqal-0.9.30/src/timegm.c	2014-06-04 11:45:57.502111046 +0200
@@ -28,6 +28,65 @@
 #include "rasqal_internal.h"
 
 #ifdef WIN32
+
+static int
+rasqal_tmcomp(const struct tm *a, const struct tm *b)
+{
+  int result;
+
+  if (!(result = (a->tm_year - b->tm_year)) &&
+      !(result = (a->tm_mon - b->tm_mon)) &&
+      !(result = (a->tm_mday - b->tm_mday)) &&
+      !(result = (a->tm_hour - b->tm_hour)) &&
+      !(result = (a->tm_min - b->tm_min)))
+    result = a->tm_sec - b->tm_sec;
+  return result;
+}
+
+static time_t
+rasqal_mkgmtime(struct tm *tmp)
+{
+  int   dir;
+  int   bits;
+  int   saved_seconds;
+  time_t    t;
+  struct tm   yourtm, *mytm;
+
+  yourtm = *tmp;
+  saved_seconds = yourtm.tm_sec;
+  yourtm.tm_sec = 0;
+
+  for (bits = 0, t = 1; t > 0; ++bits, t <<= 1)
+    ;
+
+  t = (t < 0) ? 0 : ((time_t) 1 << bits);
+
+  if (bits > 40) bits = 40;
+
+  for (; ;)
+  {
+    mytm = gmtime(&t);
+
+    if (!mytm) return -1;
+
+    dir = rasqal_tmcomp(mytm, &yourtm);
+    if (dir != 0)
+    {
+      if (bits-- < 0)
+        return -1;
+      if (bits < 0)
+        --t;
+      else if (dir > 0)
+        t -= (time_t) 1 << bits;
+      else t += (time_t) 1 << bits;
+      continue;
+    }
+    break;
+  }
+  t += saved_seconds;
+  return t;
+}
+
 time_t
 rasqal_timegm(struct tm *tm)
 {
@@ -38,7 +97,7 @@
   /* _mkgmtime() changes the value of the struct tm* you pass in, so
    * use a copy
    */
-  return _mkgmtime(&my_tm);
+  return rasqal_mkgmtime(&my_tm);
 }
 
 #else
--- rasqal-0.9.30/src/win32_rasqal_config.h.in	2012-05-15 06:33:58.000000000 +0200
+++ rasqal-0.9.30/src/win32_rasqal_config.h.in	2014-06-04 11:35:21.424061486 +0200
@@ -25,6 +25,7 @@
 #ifndef WIN32_CONFIG_H
 #define WIN32_CONFIG_H
 
+#include <time.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -55,19 +56,8 @@
 } timeval;
 #endif
 
-struct timezone
-{
-  int tz_minuteswest; /* minutes West of Greenwich */
-  int tz_dsttime;     /* type of dst correction */
-};
-
-int rasqal_gettimeofday(struct timeval *tv, struct timezone *tz);
-#undef HAVE_GETTIMEOFDAY
-
 #include <float.h>
 #define isnan(n) _isnan(n)
-/* no round function available */
-#define round(x) floor(x+0.5)
 
 /* These are SPARQL token definitions */
 #ifdef OPTIONAL
openSUSE Build Service is sponsored by