chiark / gitweb /
configure.ac: Use Automake `silent-rules' by default.
[disorder] / lib / xgetdate.c
index 9d8b492e395e6940f4ce3fb281ba608e3528cfb9..81472f1246c87e473dc16e8f34689b69b3d291a3 100644 (file)
@@ -1,7 +1,11 @@
-/* Derived from getdate.c in glibc 2.3.6.  This is pretty much
+/** @file lib/xgetdate.c
+ * @brief Date parsing
+ *
+ * Derived from getdate.c in glibc 2.3.6.  This is pretty much
  * standard getdate() except that you supply the template in an
  * argument, rather than messing around with environment variables and
- * files.  */
+ * files.
+ */
 
 /* Convert a string representation of time to a time value.
    Copyright (C) 1997,1998,1999,2000,2001,2003 Free Software Foundation, Inc.
@@ -31,6 +35,7 @@
 #include <time.h>
 
 #include "dateparse.h"
+#include "strptime.h"
 
 #define TM_YEAR_BASE 1900
 
@@ -114,23 +119,23 @@ xgetdate_r (const char *string, struct tm *tp,
            const char *const *template)
 {
   const char *line;
-  size_t len;
   char *result = NULL;
   time_t timer;
   struct tm tm;
   int mday_ok = 0;
 
   line = NULL;
-  len = 0;
   while((line = *template++))
     {
       /* Do the conversion.  */
       tp->tm_year = tp->tm_mon = tp->tm_mday = tp->tm_wday = INT_MIN;
       tp->tm_hour = tp->tm_sec = tp->tm_min = INT_MIN;
       tp->tm_isdst = -1;
+#if !_WIN32
       tp->tm_gmtoff = 0;
       tp->tm_zone = NULL;
-      result = strptime (string, line, tp);
+#endif
+      result = my_strptime (string, line, tp);
       if (result && *result == '\0')
        break;
     }
@@ -140,7 +145,11 @@ xgetdate_r (const char *string, struct tm *tp,
 
   /* Get current time.  */
   time (&timer);
-  localtime_r (&timer, &tm);
+#if _WIN32
+  localtime_s(&tm, &timer);
+#else
+  localtime_r(&timer, &tm);
+#endif
 
   /* If only the weekday is given, today is assumed if the given day
      is equal to the current day and next week if it is less.  */