]> diplodocus.org Git - nmh/blobdiff - sbr/datetime.c
mhbuildsbr.c: Don't free(3) string then print it; do reverse.
[nmh] / sbr / datetime.c
index 8b21e69b0029923efcb4821ae0eb6d28a9a1f082..68038cfcee07b7af7a44a45aa18152c26b8adb9b 100644 (file)
@@ -10,6 +10,7 @@
 #include <h/fmt_scan.h>
 #include "h/tws.h"
 #include "h/utils.h"
 #include <h/fmt_scan.h>
 #include "h/tws.h"
 #include "h/utils.h"
+#include "unquote.h"
 
 /*
  * This doesn't try to support all of the myriad date-time formats
 
 /*
  * This doesn't try to support all of the myriad date-time formats
@@ -63,7 +64,7 @@ parse_datetime (const char *datetime, const char *zone, int dst,
     int form_1 = 0;
     int items_matched;
 
     int form_1 = 0;
     int items_matched;
 
-    memset(tws, 0, sizeof *tws);
+    ZERO(tws);
     items_matched =
         sscanf (datetime, "%4d%2d%2dT%2d%2d%2d%c",
                 &tws->tw_year, &tws->tw_mon, &tws->tw_mday,
     items_matched =
         sscanf (datetime, "%4d%2d%2dT%2d%2d%2d%c",
                 &tws->tw_year, &tws->tw_mon, &tws->tw_mday,
@@ -74,7 +75,7 @@ parse_datetime (const char *datetime, const char *zone, int dst,
     if (items_matched == 7) {
         /* The 'Z' must be capital according to RFC 5545 Sec. 3.3.5. */
         if (utc_indicator != 'Z') {
     if (items_matched == 7) {
         /* The 'Z' must be capital according to RFC 5545 Sec. 3.3.5. */
         if (utc_indicator != 'Z') {
-            inform("%s has invalid timezone indicator of 0x%x",
+            inform("%s has invalid timezone-indicator byte: %#x",
                     datetime, utc_indicator);
             return NOTOK;
         }
                     datetime, utc_indicator);
             return NOTOK;
         }
@@ -170,7 +171,7 @@ load_timezones (const contentline *clines) {
                 if (in_standard) { in_standard = 0; }
                 else if (in_daylight) { in_daylight = 0; }
                 if (parse_datetime (params->dtstart, params->offsetfrom,
                 if (in_standard) { in_standard = 0; }
                 else if (in_daylight) { in_daylight = 0; }
                 if (parse_datetime (params->dtstart, params->offsetfrom,
-                                    in_daylight ? 1 : 0,
+                                    in_daylight,
                                     &tws) == OK) {
                     if (tws.tw_year >= 1970) {
                         /* dmktime() falls apart for, e.g., the year 1601. */
                                     &tws) == OK) {
                     if (tws.tw_year >= 1970) {
                         /* dmktime() falls apart for, e.g., the year 1601. */