files that help getting that native windows port going -- Philippe.Simonet with swiss...
[rrdtool.git] / src / win32comp.c
diff --git a/src/win32comp.c b/src/win32comp.c
new file mode 100644 (file)
index 0000000..590e478
--- /dev/null
@@ -0,0 +1,67 @@
+// compatibility routines, non reentrant ....\r
+\r
+#include <string.h> \r
+#include <time.h>\r
+\r
+struct tm* localtime_r(const time_t* t, struct tm* r) {\r
+  struct tm * temp;\r
+  temp = localtime(t);\r
+  memcpy(r,temp,sizeof(struct tm));\r
+  return(r);\r
+}\r
+\r
+struct tm* gmtime_r(const time_t* t, struct tm* r) {\r
+  struct tm * temp;\r
+  temp = gmtime(t);\r
+  memcpy(r,temp,sizeof(struct tm));\r
+  return r;\r
+}\r
+\r
+char* ctime_r (const time_t* t, char* buf) {\r
+  char * temp;\r
+  temp = asctime(localtime(t));\r
+  strcpy(buf,temp);\r
+  return(buf);\r
+}\r
+\r
+/*\r
+       s  \r
+       Points to the string from which to extract tokens. \r
+\r
+       delim  \r
+       Points to a null-terminated set of delimiter characters. \r
+\r
+       save_ptr\r
+       Is a value-return parameter used by strtok_r() to record its progress through s1. \r
+*/\r
+\r
+\r
+char * strtok_r (char *s, const char *delim, char **save_ptr) {\r
+  char *token;\r
+\r
+  if (s == NULL)  s = *save_ptr;\r
+\r
+  /* Scan leading delimiters.  */\r
+  s += strspn(s, delim);\r
+  if (*s == '\0')\r
+    {\r
+      *save_ptr = s;\r
+      return NULL;\r
+    }\r
+\r
+  /* Find the end of the token.  */\r
+  token = s;\r
+  s = strpbrk (token, delim);\r
+  if (s == NULL) {\r
+    /* This token finishes the string.  */\r
+         *save_ptr = token;\r
+         while (**save_ptr != '\0') (*save_ptr)++;\r
+  }  else\r
+    {\r
+      /* Terminate the token and make *SAVE_PTR point past it.  */\r
+      *s = '\0';\r
+      *save_ptr = s + 1;\r
+    }\r
+  return token;\r
+}\r
+\r